tableau de chaînes.Contient?
.NET 2
string[] myStrings = GetMyStrings();
string test = "testValue";
Comment puis-je vérifier si myStrings
contient test
?
- vb.net et c# ne sont pas la même langue...
- Thompson: c'est eddy556 ....
- I. Q test ? une telle question à partir d'un ~4K gars ?! (À l'aide .NET 2.0 n'est pas claire)
- Je suis un 27K gars et je ne savais pas la réponse. Le point est, je sais comment le faire dans .NET 3.5, mais qui ne m'aide pas pour mon legacy 2.0 projet.
- Il suffit de cocher Tableau.IndexOf(myStrings, test) >= 0.
Vous devez vous connecter pour publier un commentaire.
Dans .NET 2.0, vous pouvez faire ce qui suit si vous voulez l'index:
index
sera-1
simyStrings
ne contient pas detest
.Si vous voulez simplement pour vérifier l'existence:
J'ai trouvé un élégant la réponse à la page ici http://www.dotnettoad.com/index.php?/archives/10-Array.Contains.html. Ce que vous avez à faire .NET 2.0 est à jeter à IList et l'appel de la méthode.
Voici une .NET 2.0 approche. À l'aide de
Array.Find
retourne null si la valeur n'est pas trouvée.C# Approche
Si vous avez besoin d'un casse utilisation de la correspondance
s.Equals(test, StringComparison.InvariantCultureIgnoreCase)
.EDIT: avec VB.NET 2.0 plus l'effort est nécessaire, car il ne prend pas en charge les délégués anonymes. Au lieu de cela, vous devrez ajouter un
Function
et l'utilisationAddressOf
pour pointer vers elle. Vous devez définir letestValue
en tant que membre ou bien depuis qu'il ne sera pas transmise à l'prédicat de la méthode. Dans l'exemple suivant j'utiliseArray.Exists
.VB.NET Approche
Contains
type de contrôle, mais nécessite plus d'efforts queIndexOf
.Au lieu d'utiliser un tableau statique, vous pouvez utiliser une Liste:
string[] letters = "a, b, c, d".Split();
. Est-il optimal pour une telle fonction élémentaire à utiliser les conversions de Tableau Liste?Pensé que je voudrais ajouter un autre pour le mélange, pour la première fois dans .NET 3.5, je crois:
using System.Linq
, vous pouvez écriremyStrings.Contains(test)
, commeEnumerable.Contains
est une méthode d'extension. (BTW, .NET version 3.5 utilise le même CLR que .NET version 2.0, donc cela fonctionne généralement ".NET 2.0".)Et ce sera la meilleure performance jamais enregistrée. 😛
Ici est presque exactement la même question sur msdn.
Trouver String en Tableau de chaînes
Comme d'autres l'ont dit vraiment vous avez deux options:
1) Utiliser une liste pour faciliter la vérification de
2) en Boucle par le biais de votre tableau de trouver la chaîne
vous pouvez utiliser le Tableau.BinarySearch comme décrit ci-dessous.
Comment à ce sujet:
Cela devrait fonctionner pour .Net 2.0 et VB.Net.
Je suppose que vous voulez vérifier si tous les éléments de votre tableau contient une certaine valeur (test). Si donc, vous voulez construire une simple boucle. En fait, je pense que vous devriez cliquez ici.