将字符串数组strArr
中的各个字符分隔为包含这些字符的数组charArr
的最佳方法是什么,如下所示?
string[] strArr = { "123", "456", "789" };
char[] chrArr = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
这就是我目前正在做的,但我不认为它是非常优雅的:
int characterCount = 0;
for (int i = 0; i < strArr.Length; i++)
{
characterCount += strArr[i].Length;
}
int indexCount = 0;
char[] chrArr = new char[characterCount];
for (int i = 0; i < strArr.Length; i++)
{
for (int j = 0; j < strArr[i].Length; j++)
{
chrArr[indexCount] = strArr[i][j];
indexCount++;
}
}
发布于 2013-05-31 04:07:39
我会这样做:
char[] chrArr = strArr.SelectMany(s => s).ToArray();
发布于 2013-05-31 04:07:25
var res = strArr.SelectMany(c => c.ToCharArray()).ToArray();
发布于 2013-05-31 04:09:46
基于LINQ的版本为:
var input = new string[] { "abc", "def", "ghi" };
var characters = (from s in input
from c in s
select c).ToArray();
foreach (var c in characters) Console.WriteLine(c);
https://stackoverflow.com/questions/16844986
复制相似问题