我有一个实现IList接口的对象,我想把它投射到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;
Run Code Online (Sandbox Code Playgroud)
这些都不起作用.请帮忙,谢谢.澄清:
b是从外部作为参数传递的对象.它实现了IList接口.例如,
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
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 15
如果现有对象IList<object>没有实现该接口,则无法将其转换为现有对象,但您可以使用LINQ轻松构建新对象 List<object>:
List<object> = b.Cast<object>().ToList();
Run Code Online (Sandbox Code Playgroud)