基本的c#问题。在下面的示例中,'is'不喜欢类型变量。任何想法应该是一个简单的答案。
List<object> list = new List<object>();
list.Add("one");
list.Add(2);
list.Add('3');
Type desiredType = typeof(System.Int32);
if (list.Any(w => w is desiredType))
{
//do something
}
答案 0 :(得分:6)
试试这个:
List<object> list = new List<object>();
list.Add("one");
list.Add(2);
list.Add('3');
Type desiredType = typeof(System.Int32);
if (list.Any(w => w.GetType().IsAssignableFrom(desiredType)))
{
//do something
}
无论如何:您确定要创建对象列表吗?
答案 1 :(得分:4)
w.GetType() == desiredType
。
你为什么滥用这样的仿制品?
答案 2 :(得分:3)
您可以使用Linq扩展方法OfType:
list.OfType&LT;&GT;将IEnumerable返回给指定类型的任何项。
答案 3 :(得分:1)
如果我没记错,你必须写w is System.Int32
..
答案 4 :(得分:1)
委托期望一个类型或命名空间,但是你提供了一个类型实例。试试这个:
if (list.Any(w => w is Int32))
{
//do something
}