I have an object which implements IList
interface, I want to cast it to IList<object>
or
List<object>
,
I tried
IList<object> a=(IList<object>)b;
List<object> a=(IList<object>)b;
IList<object> a=(List<object>)b;
List<object> a=(List<object>)b;
These are not working. Please help, thanks. To clarify:
b is an object pass as parameter from outside. It implements IList interface. For example,
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
}
}
You can't convert the existing object to an IList<object>
if it doesn't implement that interface, but you can build a new List<object>
easily using LINQ:
List<object> = b.Cast<object>().ToList();
Found the answer:
IEnumerable<object> a = dataLeaves as IEnumerable<object>;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With