问题描述
三个数组长度一样,我想比较三个数组对象的第一个元素,找出最大的保留,以此类推;int[]a1=newint[]{3,6,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};比较后得到新数组对象ax=newint[]{5,9,7,8};请问如何在List中实现呢?thanks
解决方案
解决方案二:
笨办法:1、循环数组长度次2、每次比较3个数,取最大数3、存入新数组
解决方案三:
能给个确切的例子吗?谢过了
解决方案四:
int[]a1=newint[]{3,6,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};List<int[]>list=newList<int[]>();list.Add(a1);list.Add(a2);list.Add(a3);int[]a4=newint[4];for(inti=0;i<a4.Length;i++){a4[i]=list.Max(arr=>arr[i]);}
a4的结果是5,9,7,8
解决方案五:
int[]result=newint[a1.Length];for(inti=0;i<a1.Length;i++){result[i]=getMax(i);}intgetMax(intindex){intt=a1[index];if(t<a2[index]){t=a2[index];}if(t<a3[index]){t=a3[index];}returnt;}
解决方案六:
int[]a1=newint[]{3,6,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};int[]ax=newint[4];inttmp;for(inti=0;i<4;i++){tmp=a1[i]>a2[i]?a1[i]:a2[i];tmp=tmp>a3[i]?tmp:a3[i];ax[i]=tmp;}
解决方案七:
int[]a1=newint[]{3,6,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};int[]ax=newint[4];inttmp;for(inti=0;i<4;i++){tmp=Math.Max(a1[i],a2[i]);tmp=Math.Max(tmp,a3[i]);ax[i]=tmp;}
解决方案八:
int[]a1=newint[]{3,6,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};varresult=Enumerable.Range(0,a1.GetLength(0)).Select(x=>(newint[]{a1[x],a2[x],a3[x]}).Max()).ToArray();
解决方案九:
我用的是VS2005开发的,其他的办法还有吗?最好给出例子,多谢
解决方案十:
引用8楼weilu0328的回复:
我用的是VS2005开发的,其他的办法还有吗?最好给出例子,多谢
上面几个楼已经有了,循环判断吧
解决方案十一:
varresult=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();
解决方案十二:
如果要是加上List遍历的话,VS05如果来判断呢谢我写成这样不知知道正确不//colCount数组的长度privatestaticint[]AssignMaxWidthBetweenTables(List<int[]>lstMaxLenOfColWidth,intcolCount){inttemp;int[]intRet=newint[colCount-1];for(inti=0;i<lstMaxLenOfColWidth.Count;i++){for(intj=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;}}}
解决方案十三:
关键是我要在外层的Listobj中循环呀,还有人知道吗