gpt4 book ai didi

c# - 如何删除计数最低的子列表并保留主列表中计数最高的子列表?

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:39 24 4
gpt4 key购买 nike

我有一个子列表列表,它是 List<List<nodes>> .我在列表列表中存储了一些列表,现在我将它们称为主列表。现在我必须比较子列表中元素的数量,即存储在主列表中的列表。我只需要保留所有子列表中计数最高的那个子列表,并删除剩余的子列表。如何做到这一点?

最佳答案

List<List<Foo>> mainList = ...

// Find count of biggest sub-list.
int maxCount = mainList.Max(list => list.Count);

// Remove all other sub-lists.
mainlist.RemoveAll(list => list.Count != maxCount);

请注意,如果 more 有多个 maximum-count 的子列表,它们将全部保留。

如果你不想这样,你可以任意选择其中一个保留:

if(mainlist.Count != 1)
mainList.RemoveRange(1, mainList.Count - 1);

如果您不关心性能,并且不介意重新分配变量,您可以这样做:

mainList = mainList.OrderByDescending(list => list.Count)
.Take(1)
.ToList();

编辑:

在 .NET 2.0 中,您可以执行如下操作:

public static void KeepBiggestSubList<T>(List<List<T>> mainList)
{
if (mainList == null)
throw new ArgumentNullException("mainList");

if (mainList.Count == 0)
return;

List<T> maxList = mainList[0];

foreach (List<T> list in mainList)
{
if (list.Count > maxList.Count)
maxList = list;
}

mainList.Clear();
mainList.Add(maxList);
}

关于c# - 如何删除计数最低的子列表并保留主列表中计数最高的子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com