如何在两个数组中拆分数组?
我有一个数组,并希望将其拆分为两个:
现在: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
New_1: [0, 2, 4, 6, 8]
0,2,4,6,8 [0, 2, 4, 6, 8]
New_2: [1, 3, 5, 7, 9]
1,3,5,7,9 [1, 3, 5, 7, 9]
因此,取一个元素并跳过下一个元素。 看起来很简单,但我怎么能用C#做到这一点?
非常感谢
您可以使用linq, Enumerable.Where并使用具有偶数和奇数索引的元素获取数组。
var New_1 = arr.Where((c,i) => i % 2 == 0).ToArray(); var New_2 = arr.Where((c,i) => i % 2 != 0).ToArray();
您可以获取集合元素的索引并应用条件来检查索引是偶数还是奇数并获取数组。
Enumerable.Where方法(IEnumerable,Func)基于谓词过滤一系列值。 每个元素的索引都用在谓词函数的逻辑中。 谓词的第一个参数表示要测试的元素。 第二个参数表示source, msdn中元素的从零开始的索引
怎么样的
int[] arr = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] arr1 = arr.Where((x, i) => i % 2 == 0).ToArray(); int[] arr2 = arr.Where((x, i) => i % 2 == 1).ToArray();
int[] arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0; List twoArr = arr.GroupBy(x => i++ % 2).Select(g => g.ToArray()).ToList();