1

我有这个代码:

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

我从字典字符串中取出五个项目,int 按降序排列

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

在这里,我展示了 5 个项目,但除了一些放在另一个字典字符串中的单词,字符串。如果我在 top5 中排除一个单词,我将显示少于 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完成排除后执行。然后进行格式化。您可以将其中一些组合成一个 linq 语句。

于 2015-11-04T03:08:15.607 回答
0

使用的替代方法Except是在 LINQ 表达式中添加一个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 回答