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();