【发布时间】:2020-06-19 00:14:11
【问题描述】:
我要覆盖的方法具有以下签名。
public override bool IsValid(object value)
传入的对象是一个列表,但列表类型未知。可能是List<string> 或List<int>。
我需要将其转换为 List<object>。我试过了
if (!(value is IList temp))
{
return false;
}
List<object> list = temp.OfType<object>().ToList();
哪种有效,但它会过滤掉任何空值,大概是因为它们不是OfType<object>
那么最好的方法是什么?
【问题讨论】:
-
您这样做的动机是什么。可能存在更好的方法。
-
你试过
temp.Cast<object>().ToList()吗? -
为什么不只是
(List<object>)temp?顺便说一句,如果它有空值,它不能是List<int>... -
@HereticMonkey 因为它不会编译)
标签: c#