gpt4 book ai didi

c# - 将 List 转换为 List
转载 作者:可可西里 更新时间:2023-11-01 03:14:20 28 4
gpt4 key购买 nike

我对泛型类有疑问。我有这样的东西:

public abstract class IGroup<T> : IEnumerable where T : class {

protected List<T> groupMembers;
protected List<IGameAction> groupIGameActionList;

public IGroup() {
groupMembers = new List<T>();

groupIGameActionList = new List<IGameAction>();
//groupIGameActionList.Add(new DieGameAction(groupMembers));
}
}

第二类:

class DieGameAction : IGameAction {

List<object> gameObjectList;

public DieGameAction(List<object> objectList) {
gameObjectList = objectList;
}
}

我不知道如何转换或转换groupMembers在注释行中。这不起作用,因为它无法转换( List<T>List<object> )。那我该怎么做呢?

最佳答案

groupMembers.Cast<object>().ToList();

但这看起来不是一件好事。您正在创建一个新的空列表,它将不再与原始列表相关。

您将使用这些类的方式将告诉您这是否是一个好主意。如果您计划通过将项目添加到单个类来更新两个列表,则不适合。那么也许你的DieGameAction也应该是通用的:DieGameAction<T> .然后你可以在不转换的情况下给出原始列表。

但是,还有另一个危险:如果您为 IGroup 设置一个新列表,它将不会反射(reflect)到 DieGameAction。

所以,这完全取决于您要做什么。

关于c# - 将 List<T> 转换为 List<object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16741739/

28 4 0