将字符串拆分为单个字符的字符串数组

mow*_*ker 49 c# string split

我想车削简单的东西"this is a test"进入

new string[] {"t","h","i","s"," ","i","s"," ","a"," ","t","e","s","t"}
Run Code Online (Sandbox Code Playgroud)

我真的必须这样做吗?

test = "this is a test".Select(x => x.ToString()).ToArray();
Run Code Online (Sandbox Code Playgroud)

编辑:为了澄清,我不想要一个char数组,理想情况下我想要一个字符串数组.我没有看到上述代码有任何问题,只是因为我认为有一种更简单的方法.

Bra*_*etz 106

我相信这就是你要找的东西:

char[] characters = "this is a test".ToCharArray();
Run Code Online (Sandbox Code Playgroud)

  • 虽然这不是我要求的,但我想我已经开始意识到我的要求确实没有理由. (3认同)

Chr*_*ler 32

C#中的字符串已经有一个char索引器

string test = "this is a test";
Console.WriteLine(test[0]);
Run Code Online (Sandbox Code Playgroud)

和...

if(test[0] == 't')
  Console.WriteLine("The first letter is 't'");
Run Code Online (Sandbox Code Playgroud)

这也有效......

Console.WriteLine("this is a test"[0]);
Run Code Online (Sandbox Code Playgroud)

还有这个...

foreach (char c in "this is a test")
  Console.WriteLine(c);
Run Code Online (Sandbox Code Playgroud)

编辑:

我注意到关于char []数组的问题已经更新了.如果你必须有一个string []数组,这里是你如何在c#中的每个字符处拆分一个字符串:

string[] test = Regex.Split("this is a test", string.Empty);

foreach (string s in test)
{
  Console.WriteLine(s);
}
Run Code Online (Sandbox Code Playgroud)

  • +1 击中了我在发布答案时错过的一个明显点。呃。为什么我没有想到这一点? (2认同)

che*_*zer 6

Simple!!
one line:

 var res = test.Select(x => new string(x, 1)).ToArray();
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 5

您可以只使用String.ToCharArray(),然后将每个字符视为代码中的字符串。

这是一个例子:

    foreach (char c in s.ToCharArray())
        Debug.Log("one character ... " +c);
Run Code Online (Sandbox Code Playgroud)


Dav*_*den 5

尝试这个:

var charArray = "this is a test".ToCharArray().Select(c=>c.ToString());
Run Code Online (Sandbox Code Playgroud)

  • `ToCharArray()` 似乎是多余的。另请注意,您将获得 `System.Linq.Enumerable+WhereSelectArrayIterator\`2[System.Char,System.String]` 而不是 `System.String[]`。 (2认同)