如果一個串列有 2 行或更多行,我們可以將行的值與該串列進行比較,以檢查它們是否與任何其他行匹配,以便在找到時合并它們
我有下面的串列,其中有 2 條記錄。需要檢查第 1 列、第 2 列的值是否相同。如果相同,則需要在內部串列中添加值列。
{
List: [
{
Amount :[{Value : 10}],
Column1: "Objective 1",
Column2: "6789"
},{
Amount :[{Value : 10}],
Column1: "Objective 1",
Column2: "6789"
}]}
我已經獲取了串列中的不同值,并與要添加的實際串列進行了比較。但這不起作用
嘗試使用 distinct()。它僅提供不同的行,但如果發現重復項則需要合并這些值
我必須將輸出作為單行,值為 20
{
List: [
{
Amount :[{Value : 20}],
Column1: "Objective 1",
Column2: "6789"
}]}
uj5u.com熱心網友回復:
假設你有這樣的事情:
var list = new List<MyClass>
{
new MyClass
{
Column1 = "Objective 1",
Column2 = "6789" ,
Amount = new List<Amount>
{
new Amount { Value = 10 }
}
},
new MyClass
{
Column1 = "Objective 1",
Column2 = "6789" ,
Amount = new List<Amount>
{
new Amount { Value = 10 }
}
}
};
...您可以按標識屬性(例如Column1和Column2)對串列進行分組,并選擇新實體,其中金額值是組中所有金額值的總和:
var result = list
.GroupBy(x => new { x.Column1, x.Column2 })
.Select(grp => new MyClass
{
Column1 = grp.Key.Column1,
Column2 = grp.Key.Column2,
Amount = new List<Amount>
{
new Amount
{
Value = grp.SelectMany(x => x.Amount).Sum(x => x.Value)
}
}
}).ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/533351.html
標籤:C#。网林克
上一篇:嵌套物件訪問原始物件的屬性
下一篇:EFcore中的兩個一對一關系
