1

これは for ループとモデル クラスを使用して解決できることはわかっていますが、ラムダ式のみを使用して匿名オブジェクトを生成する方法に興味があります。

クラスがあるとしましょう

public class GameReport
{
    public GameReport()
    {
        Entries = new List<ReportEntry>();
    }

    public string GameName { get; set; }
    public List<ReportEntry> Entries { get; set; }
}

このクラスを使用して、オブジェクトをインスタンス化しました

List<GameReport> gameReports = new List<GameReport>();

次に、このリストに必要な値 (Entries リストを含む) を入力します。次に、Lambda 式を使用して、次のようなものを含む匿名オブジェクトで構成される新しいリストを作成する必要があります。

new { GameName, SingleEntry}

前もって感謝します!

4

1 に答える 1

2
var items = (from g in gameReports
             from e in g.Entries
             select new { g.GameName, Entry = e }).ToList();

または、SelectManyメソッド ベースのクエリでメソッドを使用します。

var items = gameReports.SelectMany(g => g.Entries
                                        .Select(e => new
                                                     { 
                                                         g.GameName,
                                                         Entry = e
                                                     })).ToList();

最初のものは、コンパイル時にコンパイラによって 2 番目のものに変換されます。

于 2013-10-21T04:06:30.137 に答える