我有一個int值列表像下面的一些事情(上限和下限是動態的)名單C#計算項目<int>值和垂直
1, 2, 3
4, 6, 0
5, 7, 1
我想在垂直明智的計算列值像
1 + 4 + 5 = 10
2 + 6 + 7 = 15
3 + 0 + 1 = 4
預期結果= 10,15,4
任何幫助,將理解
感謝
迪普
我有一個int值列表像下面的一些事情(上限和下限是動態的)名單C#計算項目<int>值和垂直
1, 2, 3
4, 6, 0
5, 7, 1
我想在垂直明智的計算列值像
1 + 4 + 5 = 10
2 + 6 + 7 = 15
3 + 0 + 1 = 4
預期結果= 10,15,4
任何幫助,將理解
感謝
迪普
下面是一個使用數組文本輸入數據,但後續代碼的工作原理完全對數組或列表相同。
var grid = new []
{
new [] {1, 2, 3},
new [] {4, 6, 0},
new [] {5, 7, 1},
};
現在產生一個序列與用於每個列的一個項目(以最短的行中的元素的數量),其中,所述項目的值是行[柱]值的總和:
var totals = Enumerable.Range(0, grid.Min(row => row.Count()))
.Select(column => grid.Sum(row => row[column]));
打印的是:
foreach (var total in totals)
Console.WriteLine(total);
丹尼爾,謝謝您的幫助很大,它的工作... – Deepu 2010-06-16 12:55:21
你必須使用 「目錄」 -object? Elseway,我會使用一個二維數組。否則,您可以嘗試一下,如何分開地到達行和列,以便您可以在簡單for循環中添加數字。它取決於List對象的方法。
如果您使用二維數組,您可以對每行的第一列,第二列...進行求和。
如果使用一維數組,你可以簡單地使用模:
int[] results = new results[colCount];
for(int i=0, i<list.Count; list++)
{
results[i%colCount] += list[i];
}
相當呆板基礎上的問題,但如何:
int ans = 0;
for(int i = 0; i < list.length; i+=3)
{
ans+= list[i];
}
您可以使用不同的初始迭代器值運行3次相同的操作,也可以將整個事件作爲運行3次的interator與startValue一起放入另一個循環中。
說了這些之後,您可能想要a)查看存儲數據的不同方式,如果它們確實存在於單個列表中b)查看更靈活的方法或將其封裝到允許你拿在考慮到不同的列數等...
乾杯, 亞當
這是功課? – 2010-06-16 09:43:50
你如何獲得輸入數據? 'List'是1維;那麼它是{1,2,3,4,6,0,5,7,1}?或者是什麼? –
2010-06-16 09:44:47
你如何存儲數字?他們是否都在一個九元素列表中? – 2010-06-16 09:45:07