5 votes

Chaîne de caractères fractionnée avec un délimiteur en C#/ASP.Net

Si je fais ceci :

 string text = "Bonjour, comment ça va?";

 string[] split = text.Split('h', 'o');

Comment puis-je obtenir une liste des délimiteurs utilisés entre chaque élément du tableau? Je essaie de recréer la chaîne dans son ensemble.

3voto

James Hill Points 27532

Comme l'a mentionné @Davy8, il n'y a pas de méthode intégrée. Voici un exemple TRÈS simple pour vous aider à écrire une méthode personnalisée.

void Main()
{
    string text = "Bonjour, comment ça va?";
    List splitDefinitionList = CustomSplit(text, new char[] { 'h', 'o' });
}

public List CustomSplit(string source, char[] delimiters)
{
    List splitDefinitionList = new List();

    foreach(char d in delimiters)
    {
        SplitDefinition sd = new SplitDefinition(d, source.Split(d));           
        splitDefinitionList.Add(sd);
    }

    return splitDefinitionList;
}

public class SplitDefinition
{
    public SplitDefinition(char delimiter, string[] splits)
    {
        this.delimiter = delimiter;
        this.splits = splits;
    }

    public char delimiter { get; set; }
    public string[] splits { get; set; }
}

2voto

Davy8 Points 12458

Je ne connais pas de moyen intégré pour ça. Il vaut probablement mieux écrire votre propre méthode de séparation personnalisée qui prend en compte les délimiteurs.

1voto

m.edmondson Points 13514

C'est impossible. La chaîne a été divisée, alors comment pouvez-vous savoir si la division était basée sur un 'h' ou un 'o'?

Quoi qu'il en soit, si vous pouvez faire cela:

 string[] split = text.Split('h', 'o');

alors pourquoi ne pas aussi stocker ces caractères?

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