对于这个可能很愚蠢的问题感到抱歉,但我已将此Ienumerable<>
设置为
我需要将名称和百分比拆分为单独的行,并为这些行复制ProductId和RowIndex(我知道它不是有效的,但它需要做什么)。并且可能是一个新字段,用于指定组合行的数据。
例如,
ProductId, Name , Percent, RowIndex
2301283 , PLACEHOLDER, 12.20 , 1
应该变成这个:
ProductId, DataType, Value , RowIndex
2301283 , Name , PLACEHOLDER, 1
2301283 , Percent , 12.20 , 1
etc etc
此外,如果有意义,它们不能嵌套在其他列表或枚举或任何内容中。
这可能在LINQ中吗?
答案 0 :(得分:0)
试试这个
这会导致SelectMany
var data = (from entity in Entities
select new [] {
new { entity.ProductId, DataType = "Name", Value= entity.Name, entity.RowIndex},
new { entity.ProductId, DataType = "Percentage", Value= entity.Percentage, entity.RowIndex},
}).SelectMany(e=> e);
或
这将为您提供列表,其中每个元素都包含Name和Percetnage行
var data = (from entity in Entities
select new {
NameEntity = new { entity.ProductId, DataType = "Name", Value= entity.Name, entity.RowIndex},
PercentageEntity = new { entity.ProductId, DataType = "Percentage", Value= entity.Percentage, entity.RowIndex},
});
foreach(var d in data) {
//d.NameEntity
//d.PercentageEntity
}