我有一個List<List>
。我想從中獲取單個列表。從收藏品收藏
List<int> from List<List<SomeClass>()
For循環是一個顯而易見的解決方案,但我希望從性能角度來看更好,更高效。
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
我有一個List<List>
。我想從中獲取單個列表。從收藏品收藏
List<int> from List<List<SomeClass>()
For循環是一個顯而易見的解決方案,但我希望從性能角度來看更好,更高效。
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
試試這個:
var list = listOfLists.SelectMany(x => x).ToList();
我不知道你到底是什麼額外的信息之後。你對這個問題的編輯幾乎是完整的代碼。
你應該寫:
List<int> Current =
ValueLists
.SelectMany(u => u.Select(v => v.EmployeeID))
.ToList();
這可以寫成這個代替:
var query =
from u in ValueLists
from v in u
select v.EmployeeID;
List<int> Current = query.ToList();
也許,讓更多的清晰度。
還沒有得到答案,請參閱editted問題更多 細節和實際情況:
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
你的方法是行不通的,因爲IEnumerable<int>
不是List<int>
。因此你最後需要ToList()
。
這應該工作:
List<int> Current = ValueLists.SelectMany(u => u.Select(e => e.EmployeeID)).ToList();
什麼:
var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();
性能方面幾乎一樣快,一個for循環。但在句法上更讓人高興。 – jessehouwing
@Enigmativity仍然沒有得到答案,請參閱editted問題的更多細節和實際scanraio。 – MegaMind