gpt4 book ai didi

c# - 将父类(super class)型数组拆分为子类型数组

转载 作者:行者123 更新时间:2023-12-02 05:08:22 24 4
gpt4 key购买 nike

我有以下定义:

class X {
private ICollection<A> listOfObjects;
}

class A

class B : A

class C : A

现在我想拆分这个对象列表并为每种类型创建单独的列表。我认为我想出的解决方案就足够了,但我的列表永远不会被填充。我是不是忽略了什么?

foreach (var obj in listOfObjects) {
if (obj.getType() == typeof(B)) {
SomeList.Add((B) obj);
} else if (obj.GetType() == typeof(C)) {
AnotherList.Add((C) obj);
}
}

这是正确的做法吗?我无法在程序的其他地方找到错误。调试器向我显示评估实际上已通过,但列表仍为空。

最佳答案

试试这个:

  class X {
private ICollection<A> listOfObjects;

public List<B> GetBs() {
return listOfObjects.OfType<B>().ToList();
}
public List<C> GetCs() {
return listOfObjects.OfType<C>().ToList();
}
}

class A {}

class B : A {}

class C : A {}

关于c# - 将父类(super class)型数组拆分为子类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912632/

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