我懷疑你是問題是MultiDimensional
陣列或陣列陣列(Jagged Arrays
)。你不能有不同的dimensions
在MultiDimensional
陣列。
所以我假設你有陣列陣列,現在你可以做到這一點。
int[][] numbers2 = new int[][]
{
new int[] {1, 4,5,6, 10},
new int[] {1,-2,3, 10, 1, },
new int[] {-7,-8,-9, -1, 0}
};
var sum_array =numbers2.Select(x => x.OrderBy(c=>c)
.Skip(1)
.Take(x.Length-2)
.Sum(c=>c)
);
輸出:
15,5,-16
的情況下,如果你想對付Multidimensional
陣列,做到這一點。
int[,] numbers = new int[3,5]
{
{1, 4,5,6, 10},
{1,-2,3, 10, 1, },
{-7,-8,-9, -1, 0}
};
var row_sum = numbers.Cast<int>()
.Select((x, i) => new { Index = i, Value = x })
.GroupBy(x => x.Index/(numbers.GetUpperBound(1) +1))
.Select(x => x.OrderBy(c=>c.Value).Skip(1).Take(numbers.GetUpperBound(1)-1).Sum(c=>c.Value))
.ToArray();
這兩種情況你都會得到相同的輸出。
支票example
您真的要排除項目,還是隻是按上述標準計算總和?另外,如何排序(標題中提到)是相關的? – Tal
這真的不是一個地方發佈作業的問題,並期望得到爲你寫的答案。 –
我有排序的原因我相信一個解決方案可能是按升序排列數組,然後在求和數組時忽略第一個和最後一個值。如果可以根據上述標準計算結果,則不需要排除該項目。我不知道該如何解決這個問題 – Michael