0

私は持っていList<List>ます。そこから1つのリストを取得したいと思います。

List<int> from List<List<SomeClass>()

forループは明らかな解決策ですが、パフォーマンスの観点から、より優れた、より洗練されたものが必要です。

List<List<Employee>> ValueLists;

List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
4

3 に答える 3

4

これを試して:

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();

多分それはより明確になります。

于 2012-07-02T07:20:17.863 に答える
0

それでも答えが得られません。詳細と実際のシナリオについては、編集された質問を参照してください。

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();
于 2012-07-02T07:32:36.693 に答える
0

どうですか:

var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();
于 2012-07-02T08:11:15.003 に答える