我收集的數據與2 coloumn數組看起來像如何找到這個在數組值基礎條件
---------------
Order | Value
---------------
order1 | 45
order2 | 70
order1 | 85
order2 | 32
--------------
如何獲得基於條件,其中爲了陣列中的所有值= order1只,總結呢?
謝謝
我收集的數據與2 coloumn數組看起來像如何找到這個在數組值基礎條件
---------------
Order | Value
---------------
order1 | 45
order2 | 70
order1 | 85
order2 | 32
--------------
如何獲得基於條件,其中爲了陣列中的所有值= order1只,總結呢?
謝謝
使用LINQ(Where
爲條件)和(Sum
聚集函數):
var sum = array.Where(x=> x.Order == "order1").Sum(x=> x.Value);
如果你真的意味着一個2-d(多維)數組,那麼你可以做這個:
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;
}
}
你能給我一個完整的代碼嗎?我剛從這個簡單的數組開始: string [,] ord = new string [7,3]; 如何使用該數組實現該linq代碼?謝謝 – MFBM
@MFBM檢查編輯。 – user3185569
非常感謝。但是,如果你設計,如果我不使用二維數組,如下這個數組: string [,] ord = new string [7,3];請檢查編輯過的帖子。那麼如何開始使用LINQ如果使用該數組? – MFBM
我會使用LINQ。你有看過嗎?如果是這樣,顯示你已經嘗試過,出了什麼問題。 (提示:你應該可以通過調用'Where'和調用'Sum'來完成)。爲什麼你使用2D數組而不是封裝了命令名和值的類型,提個醒。目前還不清楚這是矩形陣列還是鋸齒陣列。 [mcve]會讓你更容易幫助你。 –
@JonSkeet我不認爲他的意思是一個二維數組(我們知道它),因爲我不認爲二維數組可以在一維中保存一個字符串,在第二維中保存一個數字。除非它是一個對象數組(不太可能) – user3185569
@ user3185569:說實話,很難說清楚。這就是爲什麼我要求[mcve]。 –