Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字典中取n个元素_C#_Dictionary_Except_Take - Fatal编程技术网

C# 从字典中取n个元素

C# 从字典中取n个元素,c#,dictionary,except,take,C#,Dictionary,Except,Take,我有以下代码: 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个项目,但

我有以下代码:

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个项目,但我只看到了另一个字典字符串string中的一些单词。如果我在top5中只显示一个单词,我将显示少于5个元素

我怎么能总是显示5个元素,尽管我除了一些单词

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);

执行
。完成排除后执行
。然后进行格式化。您可以将其中一些组合到一个linq语句中

使用
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();

非常感谢你!我一直在思考和改变代码,但最终还是做了一个简单的改变!:)