gpt4 book ai didi

c# - 分组相同类型的集合 C#

转载 作者:太空狗 更新时间:2023-10-29 18:02:38 25 4
gpt4 key购买 nike

我有一个不同对象的集合,我想知道我是否可以创建对相同类型对象进行分组的集合。我不知道是否有 linq 或类似的方法。

List<Object> list = new List<Object>();
Object1 obj1 = new Object1();
Object2 obj2 = new Object2();
Object1 obj3 = new Object1();
Object3 obj4 = new Object3();
Object3 obj5 = new Object3();

list.Add(obj1);
list.Add(obj2);
list.Add(obj3);
list.Add(obj4);
list.Add(obj5);

我想要相同类型的新列表:

List<Object1> newList1 = method.GetAllObjectsFromListObject1 // Count = 2
List<Object2> newList2 = //GetAllObjectsFromListObject2 // Count = 1
List<Object3> newList3 = //GetAllObjectsFromListObject3 // Count = 2

最佳答案

LINQ 可以很容易地做到这一点,返回一个 lookup收藏:

var lookup = list.ToLookup(x => x.GetType());

然后您可以:

  • 遍历它以找到所有类型和关联的对象
  • 使用索引器获取特定类型的所有项目。如果您指定查找中不存在的类型,这将返回一个空序列(这非常有用,而不是抛出异常或返回 null)。

关于c# - 分组相同类型的集合 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591136/

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