Comment vérifier le tableau true_or_false code> contenant une valeur de FALSE?
bool[] true_or_false = new bool[10];
for (int i = 0; i < txtbox_and_message.Length; i++)
{
bool bStatus = true;
if (txtbox_and_message[i] == "")
{
bStatus = false;
}
true_or_false[i] = bStatus;
}
6 Réponses :
au lieu de votre code: strong>
return true_or_false.Any(p => !p);
Malheureusement, non, il a besoin de 3.0 +
@kRunal: Si vous avez des restrictions de plate-forme, vous devez les mettre dans la question.
true_or_false.Contains(false);
Je reçois cette erreur après avoir ajouté System.Linq. Le nom de type ou d'espace de noms 'Linq' n'existe pas dans le système de noms de noms "(manquez-vous une référence d'assemblage?)
Vous devez ajouter une référence dans votre projet à System.core DLL
LINQ est livré avec .NET 3.5 et VS 2008, vous devez donc utiliser une solution itérative telle que les réponses de Pavan ou de Brunolm
S'ils ne sont pas tous true, au moins un est faux.
Par conséquent: p> docu: http://msdn.microsoft.com/en-us/library/bb548541.aspx p> Modifier: .NET 2.0 Version, comme demandé: P> int emptyBox = Array.FindIndex(txtbox_and_message, string.IsNullOrEmpty);
Non, la méthode de l'extension Syntaxe et la notation de Lambda pour le prédicat nécessitent les deux besoin C # 3, mais une version .NET 2 existe (voir Edition).
Vous n'avez pas vraiment besoin de délégués (fonction anonyme ou lambda) pour cela. Vous pouvez faire array.contains (true_or_false, false) code> qui est très proche du titre (Vérifiez si la matrice contient FALSE). C'est sur .NET 2.0. Lorsque vous avez LINQ, vous pouvez également utiliser la syntaxe
true_or_false.contains (false) code>. EDIT: I> mal! Dans .NET 2.0, vous devez faire
array.indexof (true_or_false, false)! = -1 code> à la place.
@Jeppestignielsen: Bien sûr, mais ma réponse montre que l'index peut être trouvé sans avoir à préparer l'éventail de booléens à l'avance, que j'ai considéré comme mieux que de rechercher le tableau des booléens.
Il y a quelques solutions:
solution 1: strong>
Faites une boucle à la boucle après que la boucle vérifie si le true_or_false contient de faux comme ceci: p> Si vous souhaitez y parvenir sans astuces de fantaisie, et que vous souhaitez programmer vous-même le code que vous pouvez le faire: p> pk fort> p> p> P> p>
== false code> et
== vrai code> doit mourir. Sinon une bonne réponse +1.
Votre deuxième solution fonctionnerait mieux si vous avez utilisé true_or_false.any (x =>! X) code>
@nasufara: sur quelles preuves basez-vous cette revendication? tout code> et
tout code> sont des courts-circuits. Si quelque chose, la nécessité d'appeler l'opérateur
! Code> (Boolean non) ne doit qu'une seule fois, il ne faut qu'une seule fois
tout code> plus rapide, mais la différence est presque trop petite à mesurer.
@Pavan: Vous pouvez faire la méthode n ° 1 plus rapide en ajoutant Break; code> à l'intérieur du Si, comme vous n'avez pas besoin de continuer à rechercher le premier faux.
merci beaucoup de gars. @Billy ive a fait les changements. et @ben, oui c'est vrai. J'ai fait les changements. Merci une fois de plus
Il y avait une restriction de la plate-forme avec la personne qui pose la question de sorte que je n'ai pas mis la troisième solution. Ive a fait les changements cependant. Merci
Si sur .NET.NET3.5 + Vous pouvez utiliser Si vous ne pouvez pas utiliser LINQ, vous avez d'autres choix: p> Utilisation de en utilisant ou vous aurez besoin de itérer via le tableau. p> system.linq code>, puis vérifier en utilisant
tout code>
: Array.exists code> Méthode statique: (comme Ben mentionné) p>
list.exists code>
(vous devriez convertir La matrice à une liste pour accéder à cette méthode) p> bool[] true_or_false = new bool[10];
for (int i = 0; i < txtbox_and_message.Length; i++)
{
true_or_false[i] = !String.IsNullOrEmpty(txtbox_and_message[i]);
}
Pourquoi recherchez-vous list.exists code> au lieu de
array.exists code>?
Que fait la boucle? On dirait qu'il vérifie le texte vierge (à plusieurs reprises) et définit tous les éléments i> true, ou false si la chaîne est vide?
Ne devrait pas
bstatus code> dépendre d'une manière ou d'une autre sur
i code>? C'est pourquoi Paulg dit correctement que tous les éléments sont les mêmes.
Dupliqué possible de retourner des booléens dans une méthode C #
Vous manquez txtstarter = txtbox_and_message [i]; ? Ou ce que Ben a dit? Votre code contient évidemment des erreurs.
J'ai modifié ma question ..
Cela n'a toujours pas de sens! Si vous êtes itération de la longueur de txtbox_and_message, alors txtbox_and_message [i] ne sera jamais ""
@Paulg: Pas ça. Le
.length code> est le nombre de chaînes dans la matrice, pas la longueur d'une chaîne particulière.
@Ben, ah oui - a du sens maintenant! Je pensais que txtbox_and_message était une seule chaîne plutôt qu'un tableau, et Krunal essayait de vérifier les caractères de la chaîne. Merci