C# 在不使用拆分函数的情况下将字符串转换为数组

C# 在不使用拆分函数的情况下将字符串转换为数组,c#,arrays,string,C#,Arrays,String,是否有任何方法可以将字符串(“abcdef”)转换为包含其字符的字符串数组([“a”、“b”、“c”、“d”、“e”、“f”]),而无需使用string.Split函数?是 "abcdef".ToCharArray(); 因此,您需要一个字符串数组,每个字符串一个字符: string s = "abcdef"; string[] a = s.Select(c => c.ToString()).ToArray(); 这是因为string实现了IEnumerable。因此Select(c=

是否有任何方法可以将字符串(
“abcdef”
)转换为包含其字符的字符串数组(
[“a”、“b”、“c”、“d”、“e”、“f”]
),而无需使用
string.Split
函数?

"abcdef".ToCharArray();

因此,您需要一个字符串数组,每个字符串一个字符:

string s = "abcdef";
string[] a = s.Select(c => c.ToString()).ToArray();
这是因为
string
实现了
IEnumerable
。因此
Select(c=>c.ToString())
string
中的每个
char
投影到一个
string
中,表示该
char
ToArray
枚举投影并将结果转换为
string
的数组

如果您使用的是旧版本的C#:

string s=“abcdef”;
字符串[]a=新字符串[s.Length];
对于(int i=0;i
您可以使用linq并执行以下操作:

string value = "abcdef";
string[] letters = value.Select(c => c.ToString()).ToArray();

这将得到一个字符串数组,而不是字符数组。

比上面的要大一些,但我看不到任何简单的一行代码

List<string> results = new List<string>; 

foreach(Char c in "abcdef".ToCharArray())
{
   results.add(c.ToString());
}


results.ToArray();  <-- done
列表结果=新列表;
foreach(abcdef.ToCharArray()中的字符c)
{
结果:添加(c.ToString());
}
结果:ToArray() 你为什么不干脆

string value="abcd";

value.ToCharArray();

textbox1.Text=Convert.toString(value[0]);

显示字符串的第一个字母;他说的是
string
array,而不是
char
array。请注意,如果可以在
字符串中的每个
char
之间对空
char
进行
String.Split
,则结果将是
String[]
。这似乎是他所追求的行为。我的错。我冒昧地试图解释他问题中不恰当的语法,但我的解释显然是错误的。感谢您指出这一点。事实上,尽管您的两个示例最终都会给出相同的字符串数组,但第二种(“旧的”)方法要快得多。LINQ必须在将代码分解为第二组代码之前进行大量的开销转换。尝试计时测试;LINQ所用的时间是“longhand”示例的两倍多。我怀疑您的计时方法有问题。
string value="abcd";

value.ToCharArray();

textbox1.Text=Convert.toString(value[0]);