.NET 2
string[] myStrings = GetMyStrings();
string test = "testValue";
Comment puis-je vérifier si myStrings
contient test
?
.NET 2
string[] myStrings = GetMyStrings();
string test = "testValue";
Comment puis-je vérifier si myStrings
contient test
?
En .NET 2.0, vous pouviez faire ce qui suit si vous vouliez l'index :
int index = Array.FindIndex(
myStrings,
delegate(string s) { return s.Equals(test); }
);
index
sera -1
si myStrings
ne contient pas test
.
Si vous voulez simplement vérifier l'existence :
bool exists = Array.Exists(
myStrings,
delegate(string s) { return s.Equals(test); }
);
J'ai trouvé une réponse élégante à la page ici http://www.dotnettoad.com/index.php?/archives/10-Array.Contains.html . Ce que vous devez faire dans .NET 2.0 est de faire un cast vers IList et d'appeler la méthode Contains.
(IList<string> mystrings).Contains(test);
Voici une approche conforme à la norme .NET 2.0. Utilisation de Array.Find
retournera null si la valeur n'est pas trouvée.
Approche C#
string[] myStrings = { "A", "B", "testValue" };
string test = "testValue";
string result = Array.Find(myStrings, delegate(string s) { return s == test; });
Console.WriteLine("Result: " + result);
Si vous avez besoin d'une correspondance insensible à la casse, utilisez s.Equals(test, StringComparison.InvariantCultureIgnoreCase)
.
EDIT : Avec VB.NET 2.0, un effort supplémentaire est nécessaire car il ne prend pas en charge les délégués anonymes. Au lieu de cela, vous devez ajouter un Function
et utiliser AddressOf
pour l'indiquer. Vous devez définir l'option testValue
en tant que membre ou propriété puisqu'il ne sera pas transmis à la méthode de prédiction. Dans l'exemple suivant, j'utilise Array.Exists
.
Approche VB.NET
' field or property '
Dim test As String = "testValue"
Sub Main
Dim myStrings As String() = { "A", "B", "testValue" }
Dim result As Boolean = Array.Exists(myStrings, AddressOf ContainsValue)
Console.WriteLine(result)
End Sub
' Predicate method '
Private Function ContainsValue(s As String) As Boolean
Return s = test
End Function
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.