C#输入列表问题

时间:2011-04-27 11:57:34

标签: c# generics

基本的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
    }

5 个答案:

答案 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
}