16

我有一个 IList:

IList list = CallMyMethodToGetIList();

我不知道我能得到它的类型

Type entityType = list[0].GetType();`

我想用 LINQ 搜索这个列表,比如:

var itemFind = list.SingleOrDefault(MyCondition....);

感谢您的任何帮助。

4

2 回答 2

36

简单的:

IList list = MyIListMethod();

var item = list
    .Cast<object>()
    .SingleOrDefault(i => i is MyType);

或者:

IList list = MyIListMethod();

var item = list
    .Cast<object>()
    .SingleOrDefault(i => i != null);

希望这有帮助!

于 2013-03-07T20:54:52.867 回答
7
IList list = ...

// if all items are of given type
IEnumerable<YourType> seq = list.Cast<YourType>().Where(condition);

// if only some of them    
IEnumerable<YourType> seq = list.OfType<YourType>().Where(condition);
于 2013-03-07T20:51:37.713 回答