Verwenden von LINQ „Contains(string[])“ anstelle von „Contains(string)“
In LINQ-Abfragen wird der Operator „Contains“ verwendet, um zu prüfen, ob In einer Sammlung ist ein bestimmter Wert vorhanden. Standardmäßig akzeptiert Contains eine einzelne Zeichenfolge als Parameter. In einigen Szenarien kann es jedoch erforderlich sein, mehrere Werte aus einem String-Array zu vergleichen.
Um dieses Problem zu beheben, können Sie eine benutzerdefinierte Erweiterungsmethode für string[] erstellen, die die Verwendung mit dem Operator „Contains“ ermöglicht.
Benutzerdefinierte Erweiterungsmethode:
public static bool ContainsArray(this string[] array, string value) { return array.Any(element => element == value); }
Diese Methode durchläuft das String-Array und gibt true zurück, wenn der angegebene Wert gefunden wird, oder false andernfalls.
Verwendung in LINQ-Abfrage:
Nachdem die Erweiterungsmethode definiert wurde, können Sie sie jetzt in Ihrer LINQ-Abfrage verwenden:
var uids = new[] { "1", "45", "20", "10" }; var query = from xx in table where xx.uid.ToString().ContainsArray(uids) select xx;
Mithilfe der Erweiterungsmethode „ContainsArray“ können Sie jetzt den Wert von xx.uid mit mehreren Werten aus dem String-Array „uids“ vergleichen. Die Abfrage gibt alle Entitäten zurück, bei denen xx.uid im angegebenen Array enthalten ist.
Das obige ist der detaillierte Inhalt vonWie verwende ich LINQ-Contains mit einem String-Array anstelle eines einzelnen Strings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!