C# 按linq复制行
能否帮助将下面出现的for语句复制到linq表达式中C# 按linq复制行,c#,linq,C#,Linq,能否帮助将下面出现的for语句复制到linq表达式中 List<RawData> rawList = [{ "address":"adr1","id":[11,12,13],"city":"NYC"},{"address":"adr2","id":[22,23],"city":"Boston"}, {"address":"adr3","id":[77],"city":"Chicago"}]; List<Data> list = new List<Data>(
List<RawData> rawList = [{ "address":"adr1","id":[11,12,13],"city":"NYC"},{"address":"adr2","id":[22,23],"city":"Boston"}, {"address":"adr3","id":[77],"city":"Chicago"}];
List<Data> list = new List<Data>();
foreach (var item in rawList)
{
foreach (var id in item.idList)
{
Data d = new Data
{
id = id,
address = item.address,
city = item.city
};
list.Add(d);
}
}
LINQ中的展平通过以下方法完成:
一旦您了解了它的作用,剩下的就不言自明了。LINQ中的平坦化是通过以下方法完成的: 一旦你了解了它的作用,剩下的就不言自明了
var res = rawList
.SelectMany(item => item.idList
.Select(id => new Data {
id = id,
address = item.address,
city = item.city
})
).ToList();