给定以下类结构:
int Id;
string[] Codes;
以及以下数据:
Foo { Id = 1, Codes = new[] { "01", "02" } }
Foo { Id = 2, Codes = new[] { "02", "03" } }
Foo { Id = 3, Codes = new[] { "04", "05" } }
我想以以下结构结束。
Code = "01", Id = 1
Code = "02", Id = 1
Code = "02", Id = 2
Code = "03", Id = 2
Code = "04", Id = 3
Code = "05", Id = 3
我有以下查询,但它给了我一个Id集合,而不是我所追求的扁平结构。
collection.GroupBy(f => f.Codes.SelectMany(c => c), f => f.Id,
(code, id) => new { Code = code, Id = id })
.ToArray()
我想念什么?
SelectMany可以将每个项目的多个元素作为单个列表返回
items
.SelectMany(foo => foo.Codes.Select(code => new { Id = foo.Id, Code = code }));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句