Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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# - Fatal编程技术网

C# 代表奇数或偶数将字符串拆分为两个数组

C# 代表奇数或偶数将字符串拆分为两个数组,c#,C#,我有这个阵列: string[] words = new string[] {"a","b","c","d","e","f"}; 我想根据索引是偶数还是奇数将其拆分为两个数组,如下所示: string[] odd="a,c,e"; string [] even="b,d,f"; 提前感谢您可以使用可枚举的重载。其中带有索引和剩余的%: string[] even = words.Where((str, ix) => ix % 2 == 0).ToArray(); string[]

我有这个阵列:

 string[] words = new string[] {"a","b","c","d","e","f"};
我想根据索引是偶数还是奇数将其拆分为两个数组,如下所示:

string[] odd="a,c,e";
string [] even="b,d,f";

提前感谢

您可以使用可枚举的重载。其中带有索引和剩余的
%

string[] even =  words.Where((str, ix) => ix % 2 == 0).ToArray();
string[]  odd =  words.Where((str, ix) => ix % 2 == 1).ToArray();
另一种使用
ToLookup
的方法:

var evenOddIndexLookup = words.Select((str, index) => new { str, index }).ToLookup(x => x.index % 2);
string[] even = evenOddIndexLookup[0].Select(x => x.str).ToArray();
string[]  odd = evenOddIndexLookup[1].Select(x => x.str).ToArray();

听起来不难。你试过什么吗?显然,您可以使用
逐字符迭代
语句,从零到小于
单词。长度
并检查其索引是否为偶数或奇数。如果是偶数,则添加偶数数组,如果是奇数,则添加奇数数组。从
String.Split()
开始获取
String wordList={“a”、“b”、…},
另外,请注意,即使您的声明也是无效的:
“a、b、c、d、e、f”
不是
字符串[]
。它看起来更像是将一个数组组合成两个字符串(由于某种原因,
奇数
偶数
被声明为类似数组)。
 var odd = words.Where(item =>Array.IndexOf(words,item) % 2 ==1).ToArray();
 var even = words.Where(item =>Array.IndexOf(words,item) % 2 ==0).ToArray();