三个数组长度一样,我想比较三个数组对象的第一个元素,找出最大的保留,以此类推;int[] a1 = new int[] { 3, 6, 5, 0 };
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };比较后得到新数组对象 ax = new int[]{5, 9, 7, 8};请问如何在List中实现呢?thanks
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };比较后得到新数组对象 ax = new int[]{5, 9, 7, 8};请问如何在List中实现呢?thanks
int[] a1 = new int[] { 3, 6, 5, 0 };
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };
List<int[]> list = new List<int[]>();
list.Add(a1);
list.Add(a2);
list.Add(a3);
int[] a4 = new int[4];
for (int i = 0; i < a4.Length; i++)
{
a4[i] = list.Max(arr=>arr[i]);
}a4的结果是 5, 9, 7, 8
for(int i = 0; i < a1.Length; i++)
{
result[i] = getMax(i);
}int getMax(int index)
{
int t = a1[index];
if(t < a2[index])
{
t = a2[index];
}
if(t < a3[index])
{
t = a3[index];
}
return t;
}
int[] a1 = new int[] { 3, 6, 5, 0 };
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };
int[] ax = new int[4];
int tmp;
for(int i = 0; i < 4; i++)
{
tmp = a1[i] > a2[i] ? a1[i] : a2[i];
tmp = tmp > a3[i] ? tmp : a3[i];
ax[i] = tmp;
}
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };
int[] ax = new int[4];
int tmp;
for(int i = 0; i < 4; i++)
{
tmp = Math.Max(a1[i], a2[i]);
tmp = Math.Max(tmp, a3[i]);
ax[i] = tmp;
}
int[] a2 = new int[] { 1, 9, 7, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };
var result = Enumerable.Range(0, a1.GetLength(0)).Select(x => (new int[] { a1[x], a2[x], a3[x] }).Max()).ToArray();
var result =a1.Select((x,y)=>new{x,y}).Concat(a2.Select((x,y)=>new{x,y})).Concat(a3.Select((x,y)=>new{x,y}))
.GroupBy(x=>x.y).Select(x=>x.Max(y=>y.x)).ToArray();
我写成这样 不知知道正确不//colCount 数组的长度
private static int[] AssignMaxWidthBetweenTables(List<int[]> lstMaxLenOfColWidth, int colCount)
{
int temp;
int[] intRet = new int[colCount - 1]; for (int i = 0; i < lstMaxLenOfColWidth.Count; i++)
{
for (int j = 0; j < colCount; j++)
{
temp = Math.Max(lstMaxLenOfColWidth[i][j], lstMaxLenOfColWidth[i + 1][j]);
temp = Math.Max(temp, lstMaxLenOfColWidth[i + 2][j]);
intRet[j] = temp;
}
}
}