当前位置: 首页 > 编程语言 > C#

如何按索引对项目进行分组?C#LINQ分享

时间:2023-04-10 21:36:31 C#

如何按索引对项目进行分组?C#LINQ假设我有varinput=newint[]{0,1,2,3,4,5};我如何将它们分组?varoutput=newint[][]{newint[]{0,1},newint[]{2,3},newint[]{4,5}};最好使用LINQinput.Select((value,index)=>new{PairNum=index/2,value}).GroupBy(pair=>pair.PairNum).Select(grp=>grp.Select(g=>g.值).ToArray())。ToArray()可能不适合您,但您可以使用C#4.0中新的Zip方法varinput=newint[]{0,1,2,3,4,5};IEnumerableevens=input.Where((element,index)=>index%2==0);IEnumerable赔率=输入。其中((元素,索引)=>索引%2==1);var结果=偶数。Zip(odds,(e,o)=>new[]{e,o}).ToArray();varinput=newint[]{0,1,2,3,4,5};IEnumerableevens=input.Where((element,index)=>index%2==0);IEnumerable赔率=输入。其中((元素,索引)=>索引%2==1);var结果=偶数。Zip(odds,(e,o)=>new[]{e,o}).ToArray();varinput=newint[]{0,1,2,3,4,5};诠释我=0;变种输出=输入.GroupBy(项目=>i++/2);varindexedNumbers=输入。Select((number,index)=>new{Index=index,Number=number});varpairs=fromindexedNumberinindexedNumbersgroupindexedNumberbyindexedNumber.Index/2intoindexedNumberPairselectindexedNumberPair.Select(indexedNumber=>indexedNumber.Number);vararrays=pairs.Select(pair=>pair.ToArray()).ToArray();使用ToLookup方法:input.Select((number,index)=>new{index,number}).ToLookup(_=>_.index/2,_=>_.number).Select(_=>_.ToArray()).ToArray();使用Zip方式:以上是C#学习教程:如何按索引对项目进行分组?C#LINQ分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注—input.Zip(input.Skip(1),(_,__)=>new[]{_,__}).Where((_,index)=>index%2==0).ToArray();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: