gpt4 book ai didi

c# - 通用列表替换

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

所以我正在尝试设置一个 list<>具有新 list<> 的对象中的字段.此列表可以是任何类型,因此使用泛型。

我收到一个编译时错误,“无法转换 System.Collections.Generic.List<object>要键入的表达式 System.Collections.Generic.IEnumerable<T> '有没有办法让这项工作成功?

private void MyGenericMethod<T>(FieldInfo field)
{
field.SetValue(obj, new List<T>(newObjectList)); // new List<T> allObjects.ConvertAll<IEnumerable>) ???
}

最佳答案

我和达米恩在一起。问题一定是 newObjectList,因为将泛型列表传递给 SetValue 没有问题,因为它接受两个 Object 类型的参数

public void SetValue(
Object obj,
Object value
)

如果你创建一个新的列表并用另一个集合填充它,它会要求一个 IEnumerable,所以你应该尝试类似的东西

field.SetValue(obj, new List<T>(newObjectList as IEnumerable<T>));

至少在编译时,不会抛出任何错误

关于c# - 通用列表替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715178/

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