gpt4 book ai didi

c# - Foreach 对象列表中的组项目

转载 作者:行者123 更新时间:2023-11-30 22:55:24 24 4
gpt4 key购买 nike

我需要根据某个属性对大量元素进行分组。是否可以在 C# 中使用对象列表中的“where”子句执行 foreach,或者是否有更好的方法?例如,我有 5000 条记录和将它们分开的 3 个组。

Foreach list.item where item.group = group1{
do action one for every record from group1
}

等等...ps.: 我已经有了这段代码的记录,所以我认为 Linq 不会有帮助。

最佳答案

您可以根据属性将较大的列表分成较小的列表,方法是使用 ToLookup . ToLookup 方法将生成一个列表字典,其中键是您用来分隔它们的属性值,列表包含所有匹配的元素。

例如,如果您的对象有一个 CategoryID,您可以将它们分成这样的列表字典:

var smallLists = bigList.ToLookup( item => item.CategoryID, item => item );

然后您可以像这样迭代它们:

foreach (var bucket in smallLists)
{
Console.WriteLine("Bucket:");
foreach (var item in bucket)
{
Console.WriteLine("Item {0} with category {1}", item.Name, item.CategoryID);
}
}

请参阅 DotNetFiddle 上的工作示例.

关于c# - Foreach 对象列表中的组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55271950/

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