Überprüfen Sie, ob eine Liste von Strings einen Wert enthält

8

Ich habe:

%Vor%

Ich möchte Werte zu dieser Liste hinzufügen, aber vor dem Hinzufügen muss ich prüfen, ob der genaue Wert schon drin ist. Wie finde ich das heraus?

    
Medise 04.11.2014, 10:12
quelle

4 Antworten

11

Sie können List.Contains verwenden:

%Vor%

oder mit LINQs Enumerable.Any :

%Vor%

Sie können stattdessen auch eine effiziente HashSet(Of String) verwenden der Liste, die keine Duplikate zulässt und False in HashSet.Add wenn die Zeichenfolge bereits in der Menge war.

%Vor%     
Tim Schmelter 04.11.2014, 10:18
quelle
5

Die generische Liste hat eine Methode namens Enthält , die zurückgibt true, wenn der Standardvergleich für den ausgewählten Typ ein Element findet, das den Suchkriterien entspricht.

Für eine Liste (von String) ist dies der normale String-Vergleich, also könnte Ihr Code

sein %Vor%

Als eine Randnotiz betrachtet der Standardvergleich für Strings zwei Strings als unterschiedlich, wenn sie nicht den gleichen Fall haben. Also, wenn Sie versuchen, einen Autor namens "Edgar Allan Poe" hinzufügen und Sie bereits eine mit dem Namen "Edgar Allan Poe" hinzugefügt haben, das Barebone Contains nicht bemerkt, dass sie gleich sind.
Wenn Sie diese Situation verwalten müssen, brauchen Sie

%Vor%     
Steve 04.11.2014 10:17
quelle
2

Um zu überprüfen, ob ein Element in einer Liste vorhanden ist, können Sie das verwenden list.Contains () Methode. Wenn Sie eine Schaltfläche verwenden, klicken Sie auf, um die Liste der Zeichenfolgen zu füllen, dann sehen Sie den Code:

%Vor%

Hinweis: Zeile für Zeile Erklärung wird als Kommentar gegeben

    
user3972104 04.11.2014 10:18
quelle
0

Sie können eine Liste der übereinstimmenden Elemente Ihres Zustands wie folgt erhalten:

%Vor%     
Jack Gajanan 04.11.2014 10:22
quelle

Tags und Links