Heim >Backend-Entwicklung >C++ >Wie verwende ich Contains() mit einem String-Array in LINQ-Abfragen?

Wie verwende ich Contains() mit einem String-Array in LINQ-Abfragen?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 07:19:09164Durchsuche

How to Use Contains() with a String Array in LINQ Queries?

So ersetzen Sie „Contains(string)“ durch „Contains(string[]) in LINQ-Abfragen

In LINQ kann die Methode „Contains()“ Folgendes tun kann verwendet werden, um zu überprüfen, ob eine Sammlung ein bestimmtes Element enthält. Standardmäßig akzeptiert die Methode „Contains()“ einen einzelnen String-Parameter, aber was ist, wenn Sie einen Vergleich mit einem Array von Strings durchführen müssen?

Frage:

Ich habe einen LINQ-Abfrage, die so aussieht:

from xx in table
where xx.uid.ToString().Contains(string[])
select xx

Die Werte im Array string[] sind Zahlen (z. B. 1, 45, 20, 10). Ich möchte die Methode „Contains()“ verwenden, um zu überprüfen, ob die Eigenschaft „xx.uid“ (die eine Zahl ist) im Array vorhanden ist. Wie kann ich das machen?

Antwort:

Um xx.uid mit einem Array von Strings zu vergleichen, können Sie die Methode „Contains(string)“ nicht direkt verwenden. Stattdessen müssen Sie das Array string[] in eine Sammlung konvertieren, die die Methode Contains() unterstützt. Hier sind zwei Ansätze:

  1. Verwenden einer Liste:

Konvertieren Sie das Array string[] in ein List und verwenden Sie dann die Methode „Contains()“ für die Liste:

var uids = new List<string>(stringArray);
var selected = table.Where(t => uids.Contains(t.uid.ToString()));
  1. Verwenden einer Liste (wenn uid auch ein int ist):

Wenn uid auch eine Ganzzahl ist, können Sie das Array string[] in ein List-Array konvertieren. und verwenden Sie dann die Methode „Contains()“ für die Liste:

var uids = stringArray.Select(int.Parse).ToList();
var selected = table.Where(t => uids.Contains(t.uid));

Erweiterungsmethode (optional):

Sie können auch eine Erweiterungsmethode für die Zeichenfolge erstellen[ ]-Typ, um eine Methode „Contains()“ bereitzustellen, die ein Zeichenfolgenargument akzeptiert:

public static bool Contains(this string[] arr, string value)
{
    return arr.Any(s => s == value);
}

Mit dieser Erweiterungsmethode können Sie die Methode „Contains()“ direkt für die verwenden string[]-Array:

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));

Das obige ist der detaillierte Inhalt vonWie verwende ich Contains() mit einem String-Array in LINQ-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn