c# - 根据某个属性的值将一个列表拆分为多个列表

标签 c# linq list

我有一个数据结构列表,这些结构具有名为 group 的属性。 现在,我想将此列表拆分为每个 group-value 的多个列表。 例如,我在原始列表中有 5 个具有以下 group 值的对象:

0. group: "group1"
1. group: "group1"
2. group: "group2"
3. group: "group2"
4. group: "group3"

记住这个列表,我希望每个 group 值有 3 个列表。一个列表将仅包含组为“group1”的对象,下一个列表将包含组为“group2”的对象,依此类推...

我想我可以用 Linq 做到这一点(我可以这样做以从具有给定值的组中获取单个列表)但我不知道如何自动对所有可能的组执行此操作。

最佳答案

GroupBy 可以满足您的需求。但是如果你想在一个列表中包含每组一个列表的结果,你应该像这样使用它:

IList<List<Item>> groups = items.GroupBy(x => x.Group).Select(x => x.ToList()).ToList();

关于c# - 根据某个属性的值将一个列表拆分为多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629877/

相关文章:

c# - Enumerable.Average 和 OverflowException

c# - 如何编写将分隔字符串转换为列表的通用扩展方法?

java - 从字符串集列表到普通列表

python - 如何按元音和辅音对字符串进行向后排序?

c# - 如何使用 BuildManager 在 Visual Studio 2017 (MsBuild 15) 上构建 .Net Core 项目或解决方案

c# - ASP.NET MVC/C# 2010 最佳实践?

c# - 欺骗用户控件以允许 "."命名空间

c# - 仅比较 Entity Framework 6 中日期时间的时间与 odp.net Oracle 12c

c# - Linq GroupBy 将每个空值作为一个组

c# - 在 C# 中查找(属性)集合的最小值