Pun*_*ora 0 c# sorting linq-to-objects
我试图结合两个SortedDictionaries,将结果更改为a List<KeyvaluePair<string,string>>和Sort()结果.以下语句抛出错误:
var combinedEntries = from p in leftDict.Union(rightDict).ToList().Sort(myComparer) select p;
Run Code Online (Sandbox Code Playgroud)
错误:无法找到源类型"void"的查询模式的实现.找不到"选择".
这不起作用,因为Sort()返回void.如果我分开声明,它的作用是:
var combinedEntries = from p in leftDict.Union(rightDict) select p;
List<KeyValuePair<string, string>> finalentries = combinedEntries.ToList();
finalentries.Sort(comparer);
Run Code Online (Sandbox Code Playgroud)
我知道sort是一种List类型的方法而不是IEnumerable,但我认为ToList()之前调用Sort()会解决这个问题.所以第一个问题是它可以像我在第一个声明中尝试一样使用吗?如果没有,我该如何利用orderby这里?
.Sort()不返回值.它对列表进行了排序.
您可能想在.ToList()之前尝试使用.OrderBy,或者需要在.ToList()处结束行,以便可以将列表分配给您的变量.然后排序.
var sortedCombined = (from p in leftDict.Union(rightDict)
orderby p.Key // or whatever you need
select p).ToList();
Run Code Online (Sandbox Code Playgroud)