1

私はこのコードを持っています:

var items = from pair in dic orderby pair.Value descending select pair;
var top5 = items.Take(5);

Dictionary string,int から 5 つの項目を降順で取得します

var keys = String.Join(", ", top5.Select(x => String.Format("{0}", x.Key)).ToArray().Except(res.Keys));

ここでは 5 つの項目を示していますが、別の Dictionary 文字列 string に配置されているいくつかの単語を除外しています。上位 5 の単語を 1 つ除外すると、表示される要素は 5 つ未満になります。

一部の単語を除いて、常に5つの要素を表示するにはどうすればよいですか?

4

2 に答える 2

3
var items = from pair in dic orderby pair.Value descending select pair;
var keys = items.Select(x => String.Format("{0}", x.Key)).ToArray().Except(res.Keys);
var top5 = keys.Take(5);
var result = String.Join(", ", top5);

.Take除外を行った後に実行します。そして、フォーマットを行います。これらのいくつかを 1 つの linq ステートメントに組み合わせることができます。

于 2015-11-04T03:08:15.607 に答える
0

を使用する代わりに、LINQ 式に句Exceptを追加することもできます。where

var items = (from pair in dic
             orderby pair.Value descending
             where !res.ContainsKey(pair.Key.ToString())
             select pair);
var top5 = items.Take(5).ToArray();
于 2015-11-04T03:27:15.960 に答える