61 votes

Diviser la chaîne en un tableau de chaînes de caractères uniques

Je veux quelque chose d'aussi simple que de transformer "this is a test" en

 new string[] {"t","h","i","s"," ","i","s"," ","a"," ","t","e","s","t"}

Est-ce que je devrais vraiment faire quelque chose comme

 test = "this is a test".Select(x => x.ToString()).ToArray();

edit: Pour clarifier, je ne veux pas de tableau de caractères, idéalement je veux un tableau de chaînes. Je ne vois vraiment rien de mal avec le code ci-dessus, à l'exception du fait que je pense qu'il existe un moyen plus simple.

128voto

Brandon Moretz Points 4274

Je crois que c'est ce que tu cherches :

 char[] characters = "this is a test".ToCharArray();

37voto

Chris Gessler Points 11887

Les chaînes en C# ont déjà un indexeur de caractères

 string test = "this is a test";
Console.WriteLine(test[0]);

Et...

 if(test[0] == 't')
  Console.WriteLine("The first letter is 't'");

Cela fonctionne aussi...

 Console.WriteLine("this is a test"[0]);

Et ça...

 foreach (char c in "this is a test")
  Console.WriteLine(c);

EDIT :

J'ai remarqué que la question a été mise à jour en ce qui concerne les tableaux char[]. Si vous devez avoir un tableau string[], voici comment diviser une chaîne à chaque caractère en c# :

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

foreach (string s in test)
{
  Console.WriteLine(s);
}

5voto

cheziHoyzer Points 335

Simple!! une ligne:

  var res = test.Select(x => new string(x, 1)).ToArray();

4voto

David Stratton Points 45298

Vous pouvez simplement utiliser String.ToCharArray() , puis traiter chaque caractère comme une chaîne dans votre code.

Voici un exemple :

     foreach (char c in s.ToCharArray())
        Debug.Log("one character ... " +c);

4voto

David Peden Points 3532

Essaye ça:

 var charArray = "this is a test".ToCharArray().Select(c=>c.ToString());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X