c#是类型列表问题

本文关键字:问题 列表 类型 | 更新日期: 2023-09-27 17:53:28

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

c#是类型列表问题

试试这个:

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
}
无论如何:你确定要创建一个对象列表吗?

w.GetType() == desiredType .

为什么要这样滥用泛型?

您可以使用Linq扩展方法OfType:

list.OfType<>将返回指定类型的任何项的IEnumerable。

如果我没记错的话你应该写w is System.Int32 ..

委托期望获得类型或名称空间,但您提供的是类型实例。试试这个:

if (list.Any(w => w is Int32))
{
    //do something
}