Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将阵列拆分为两个阵列?_C#_Arrays_Split - Fatal编程技术网

C# 如何将阵列拆分为两个阵列?

C# 如何将阵列拆分为两个阵列?,c#,arrays,split,C#,Arrays,Split,我有一个数组,希望将其拆分为两个: 现在:[0,1,2,3,4,5,6,7,8,9] 新建\u 1:[0,2,4,6,8] 新建\u 2:[1,3,5,7,9] 所以取一个元素,跳过下一个元素。 看起来很简单,但我怎么能用C#做到呢 非常感谢您可以使用linq,并获得具有偶数和奇数索引的元素的数组 您可以获取集合元素的索引,并应用条件检查索引是偶数还是奇数,并根据条件获取数组 可枚举。其中方法(IEnumerable,Func)基于谓词过滤值序列。 在谓词函数的逻辑中使用每个元素的索引。 谓词的

我有一个数组,希望将其拆分为两个:

现在:
[0,1,2,3,4,5,6,7,8,9]

新建\u 1:
[0,2,4,6,8]

新建\u 2:
[1,3,5,7,9]

所以取一个元素,跳过下一个元素。 看起来很简单,但我怎么能用C#做到呢

非常感谢

您可以使用linq,并获得具有偶数和奇数索引的元素的数组

您可以获取集合元素的索引,并应用条件检查索引是偶数还是奇数,并根据条件获取数组

可枚举。其中方法(IEnumerable,Func)基于谓词过滤值序列。 在谓词函数的逻辑中使用每个元素的索引。 谓词的第一个参数表示要测试的元素。这个 第二个参数表示内部元素的从零开始的索引 来源:

您可以使用linq,并获得具有偶数和奇数索引的元素的数组

您可以获取集合元素的索引,并应用条件检查索引是偶数还是奇数,并根据条件获取数组

可枚举。其中方法(IEnumerable,Func)基于谓词过滤值序列。 在谓词函数的逻辑中使用每个元素的索引。 谓词的第一个参数表示要测试的元素。这个 第二个参数表示内部元素的从零开始的索引 来源:

int[]arr=newint[]{0,1,2,3,4,5,6,7,8,9};
int i=0;
列出twoArr=arr.GroupBy(x=>i++%2);
int[]arr=新的int[]{0,1,2,3,4,5,6,7,8,9};
int i=0;
列出twoArr=arr.GroupBy(x=>i++%2);

像这样的东西怎么样

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[] arr1 = arr.Where((x, i) => i % 2 == 0).ToArray();
int[] arr2 = arr.Where((x, i) => i % 2 == 1).ToArray();

别忘了
.ToArray()
,但他想要一个数组作为结果
Where()
返回一个
IEnumerable
谢谢@elmugrat,你太好了。别忘了
.ToArray()
但是他想要一个数组作为结果
Where()
返回一个
IEnumerable
谢谢@elmugrat,你真是太好了。这会起作用,但不会给OP他想要的结果(两个数组),而且(IMO)可读性不如
Where()
version@elmugrat如果他想拆分为10个数组,您会手动创建10个数组吗。不,我不会发布一个不好的答案。如果他没有说“一分为二”,我会同意你的看法,但因为他只想要两个,我认为改进的可读性值得多加一行。这会起作用,但不会给OP他想要的结果(两个数组),而且(依我看)可读性不如
Where()
version@elmugrat如果他想分成10人,请手动创建10个阵列。不,我不会发布一个不好的答案。如果他没有说“一分为二”,我会同意你的看法,但因为他只想要两个,我认为提高可读性值得多加一行。
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();