我需要從c#中的後臺處理作業中的API聚合一些數組值。 API的數量在理論上可以是無限的,但可能不會超過10個。如何以最有效的方式聚合數據整數?
這些API返回一個帶UserID和Value的簡單列表。要在我的應用程序中使用數據,我需要爲每個不同的UserID總結所有值。
實施例數據從兩個API:
從API 1:
[1, 240] (Note: The data is organized as [UserID, Value])
[2, 160]
[3, 12568]
[4, 1780]
[...]
從API 2:
[1, 10]
[2, 10]
[3, 10]
[4, 10]
[...]
期望的結果:
[1, 250]
[2, 170]
[3, 12578]
[4, 1790]
[...]
如何以最有效的方式創建這個期望列表,其中每個用戶標識的值已相互添加?
我一直在看Matrixes這似乎是一種方式,但我無法弄清楚如何添加值而不添加用戶ID到對方? (我知道它可以用一些嵌套的循環來解決,但我正在尋找更好的方法);
注意:UserID不是順序的。
通過連續的,你的意思排序?也就是說,流是[3,10],[1,13]?你想要排序輸出嗎? UserIds是否總是整數? – willem 2012-02-14 13:27:40
林猜測Linq速度不夠快? 'var results = api1Results.Join(api2Results,api1 => api1.UserId,api2 => api2.UserId,(api1,api2)new {UserId = api1.UserId,Value = api1.Value + api2.Value})' – Smudge202 2012-02-14 13:29:31
@ willem可能存在「空白」[1,2,4],其中3不在第一個結果中,但可能在第二個結果中。排序並不重要。是的,總是整數。 – 2012-02-14 13:30:55