0
votes

String [] ne contient pas la définition de ToArray () et aucune méthode d'extension

J'essaie de stocker les valeurs des cases à cocher sélectionnées à l'aide de StringBuilder et de la boucle foreach, puis de les convertir dans le tableau de chaînes.

Voici mon code

string[] col = sb.ToString().Split(' ').ToArray(); 

Mais j'ai obtenu une erreur sur cette ligne sans définition de ToArray () en String []

public ActionResult Home(CheckList obj)
    {
        StringBuilder sb = new StringBuilder();    
        foreach (var item in obj.Checkboxes)
        {
            if (item.IsChecked)
                sb.Append(item.Value).ToString();

        }

       string[] col = sb.ToString().Split(' ').ToArray();

 ..
}

Veuillez m'aider comment puis-je changer ma chaîne en un tableau de chaînes.


5 commentaires

Pourquoi convertissez-vous un tableau en tableau? Vous n'en avez pas besoin. c'est déjà un tableau!


vous obtenez déjà un tableau lorsque vous le divisez


vous devez ajouter en utilisant System.Linq; mais comment dit @Sweeper Split renvoie un tableau


Comme .Split () renvoie un tableau, vous n'avez pas besoin de .ToArray () . Retirez-le simplement


@Sweeper merci pour l'aide J'ai compris votre point.


3 Réponses :


1
votes

La méthode

ToArray () est incluse dans Linq , donc simplement utiliser linq devrait fonctionner:

using System.Linq;


8 commentaires

Je n'ai pas voté contre, mais votre réponse ne contient rien, qui n'est pas déjà inclus dans la question.


En accord. la réponse est correcte pour la question. Il ne peut pas utiliser ToArray () car il est absent en utilisant System.Linq . Qu'il aimerait faire une conversion inutile est autre chose


@schlonzo La question n'inclut rien sur l'instruction "using". Si vous êtes à propos du commentaire sous la question, dans Stackoverflow, les commentaires ne sont pas le lieu pour fournir des réponses. De plus, ce commentaire a été fait après cette réponse :)


@JustShadow C'est vrai, mais inclure une instruction using est trivial et ne résout pas le problème de la question ...


C'est en fait la seule réponse qui suggère la solution au problème exact vers lequel OP pointe, même si cette question est incorrecte et effectue une conversion de tableau en tableau, +1, c'est inutile de voter vers le bas et @JustShadow, alors ajoutez plus de détails , comme les détails de la documentation, la méthode d'extension, car cela aurait pu être juste un commentaire


@asd Comment savez-vous que System.Linq est manquant. Il n'a mentionné aucun des using s qui sont nécessaires pour exécuter l'extrait de code.


@schlonzo le titre est "String [] ne contient pas la définition de ToArray ()". ce message s'affiche lorsque using System.Linq; n'est pas ajouté.


@asd OK, vous avez raison. Je suis content de ne pas avoir voté contre. Désolé pour la confusion.



4
votes

Comme vous pouvez le voir ici dans le documentation , Split renvoie déjà un tableau de chaînes.


1 commentaires

Split renvoie un tableau mais ce n'est pas la question, au mieux cela aurait dû être le commentaire



1
votes

str.Split renvoie un tableau de chaîne. Pas besoin de le reconvertir en Array.

string str = sb.ToString();
string[] col = null;
int count = 0;
char[] splitchar = { ' ' };
col = str.Split(splitchar);


0 commentaires