Mar*_*ers 13
我假设您已经调用了一个列表集合,lists
并且您希望返回此集合中具有最多元素的列表.如果是这样,试试这个:
var listWithLargestCount = lists.OrderByDescending(list => list.Count()).First();
Run Code Online (Sandbox Code Playgroud)
或者,如果这是LINQ to Objects并且您有很多列表,那么您可能希望尝试通过避免O(n log n)排序来获得更好的性能:
int maxCount = lists.Max(list => list.Count());
var listWithLargestCount = lists.First(list => list.Count() == maxCount);
Run Code Online (Sandbox Code Playgroud)
这听起来好像你有n个列表,并且你希望挑出一个具有最大数量的列表.
试试这个:
List<int> ints1 = new List<int> { 10, 20, 30 };
List<int> ints2 = new List<int> { 1, 2, 3, 4 };
List<int> ints3 = new List<int> { 100, 200 };
var listWithMost = (new List<List<int>> { ints1, ints2, ints3 })
.OrderByDescending(x => x.Count())
.Take(1);
Run Code Online (Sandbox Code Playgroud)
您现在拥有包含最多元素的List.考虑具有相同顶级元素的2个以上列表的场景.