我知道这可以使用for循环和模型类来解决,但我很好奇你将如何仅使用lambda表达式来生成匿名对象。
说我有一个班级
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>();
然后我用必要的值(包括条目列表)填充此列表,现在我需要使用Lambda表达式来创建一个由包含
之类的内容的匿名对象组成的新列表new { GameName, SingleEntry}
提前致谢!
答案 0 :(得分: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();
第一个将在编译时由编译器转换为第二个。