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();
非常感谢你!我一直在思考和改变代码,但最终还是做了一个简单的改变!:)