gpt4 book ai didi

C# 如何将带有 IList 的对象转换为 IList
转载 作者:行者123 更新时间:2023-11-30 13:13:12 29 4
gpt4 key购买 nike

我有一个实现了 IList 的对象接口(interface),我想把它转换成IList<object>或者 List<object> ,我试过了

IList<object> a=(IList<object>)b;
List<object> a=(IList<object>)b;
IList<object> a=(List<object>)b;
List<object> a=(List<object>)b;

这些都不起作用。请帮助,谢谢。澄清一下:

b 是从外部作为参数传递的对象。它实现了 IList 接口(interface)。例如,

public class a
{
string name;
List<a> names;
}
public void func(object item)
{
object dataLeaves = data.GetType().GetProperty("names").GetValue(dataInput, null);
if (dataLeaves != null && dataLeaves.GetType().GetInterfaces().Any(t =>t.IsGenericType && t.GetGenericTypeDefinition() == typeof(IList<>)))
{
List<object> a=(List<object>) dataLeaves; //Need to convert the dataLeaves to list or IList
}
}

最佳答案

您不能将现有 对象转换为 IList<object>如果它没有实现该接口(interface),但您可以构建一个 List<object>轻松使用 LINQ:

List<object> = b.Cast<object>().ToList();

关于C# 如何将带有 IList 的对象转换为 IList<object>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14759783/

29 4 0