我正在收集数据,其中有2列的数组看起来像这样
---------------
Order | Value
---------------
order1 | 45
order2 | 70
order1 | 85
order2 | 32
--------------
如何获得基于数组的条件中的所有值,其中order =仅order 1,并将它们求和?
谢谢,
最佳答案
使用Linq(Where
用于条件)和(Sum
用于聚合函数):
var sum = array.Where(x=> x.Order == "order1").Sum(x=> x.Value);
如果您确实要表示二维(多维)阵列,则可以执行以下操作:
object[,] array =
{
{ "order1", 45 }, { "order2", 70 },
{ "order1", 85 }, { "order2", 32 }
};
decimal Sum = 0;
for(int i = 0; i < array.GetLength(0); i++)
{
if (array.GetValue(i, 0)?.ToString() == "order1")
{
decimal val;
if(decimal.TryParse(array.GetValue(i, 1)?.ToString(), out val))
Sum += val;
}
}