三个数组长度一样,我想比较三个数组对象的第一个元素,找出最大的保留,以此类推;int[] a1 = new int[] { 3, 6, 5, 0 };
int[] a2 = new int[] { 1, 97, 6 };
int[] a3 = new int[] { 5, 3, 5, 8 };比较后得到新数组对象 ax = new int[]{5978};请问如何在List中实现呢?thanks

解决方案 »

  1.   


                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
      

  2.   

    int[] result = new int[a1.Length];
    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;
    }
      

  3.   


    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;
    }
      

  4.   

    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 = Math.Max(a1[i], a2[i]);
        tmp = Math.Max(tmp, a3[i]);
        ax[i] = tmp;
    }
      

  5.   

    int[] a1 = new int[] { 3, 6, 5, 0 };
    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();
      

  6.   


    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();
      

  7.   

    如果要是加上List遍历的话,VS05如果来判断呢 谢
    我写成这样 不知知道正确不//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;
                    }
                }
            }
      

  8.   

    关键是我要在外层的List obj 中循环呀,还有人知道吗