我有
Dim objectsList as List(Of Object) = GetAllObjects()
' Filter from Objects just Persons '
Dim peopleList as List(Of Person) = ???
最有效和最有效的LINQ表达式是什么?
修改
1 Dim selectedObjects As List(Of Object) = GetAllObjects()
2 Dim selectedPeople As IEnumerable(Of Person)= selectedObjects.OfType(Of Person)
3 Dim people As List(Of Person) = selectedPeople.ToList()
3上的错误:
类型的价值 “System.Collections.Generic.List(中 System.Collections.Generic.IEnumerable(Of Person))'不可能 转换成 'System.Collections.Generic.List(Of Person)'。
答案 0 :(得分:4)
听起来像你想要的Enumerable.OfType()
:
Dim peopleList as List(Of Person) = objectsList.OfType(Of Person)().ToList()
答案 1 :(得分:1)
最有效的方法是在原点(例如,在数据库查询点)进行过滤,而不是在内存中有对象,但是:
Dim peopleList as List(Of Person) = objectsList.OfType(Of Person)().ToList()
或在C#中(注意编译后这是相同的):
var peopleList = objectsList.OfType<Person>().ToList();
答案 2 :(得分:0)
在C#中它将是
ObjectList.OfType<Person>()
VB .Net将是类似的东西