Auf der Suche nach einer Antwort auf diese Frage bin ich auf ähnliche mit LINQ gestoßen, konnte sie jedoch nicht vollständig verstehen (und somit implementieren), da ich nicht damit vertraut bin. Was ich im Grunde möchte, ist Folgendes:
- Überprüfen Sie, ob ein Element einer Liste eine bestimmte Zeichenfolge enthält.
- Wenn ja, holen Sie sich dieses Element.
Ich weiß ehrlich gesagt nicht, wie ich das machen würde. Was ich mir einfallen lassen kann, ist Folgendes (funktioniert natürlich nicht):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
Ich weiß, warum es nicht funktioniert:
myList.Contains()
wird nicht zurückgegebentrue
, da geprüft wird, ob ein ganzes Element der Liste mit der von mir angegebenen Zeichenfolge übereinstimmt.myList.IndexOf()
wird kein Vorkommen finden, da es, wie es wieder der Fall ist, nach einem Element sucht, das mit der Zeichenfolge übereinstimmt.
Ich habe noch keine Ahnung, wie ich dieses Problem lösen soll, aber ich denke, ich muss LINQ verwenden, wie in ähnlichen Fragen wie meinen vorgeschlagen. Wenn dies hier der Fall ist, möchte ich, dass der Antwortende mir die Verwendung von LINQ in seinem Beispiel erklärt (wie gesagt, ich habe mich in meiner Zeit mit C # nicht darum gekümmert). Vielen Dank im Voraus Jungs (und Mädels?).
EDIT: Ich habe eine Lösung gefunden; Durchlaufen Sie einfach die Liste, prüfen Sie, ob das aktuelle Element die Zeichenfolge enthält, und setzen Sie dann eine Zeichenfolge, die dem aktuellen Element entspricht. Ich frage mich jedoch, ob es einen effizienteren Weg gibt als diesen?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
myString
. In Ihrer aktuellen Schleife erhalten Sie das letzte Element. Es hängt von Ihnen ab, ob Sie den ersten oder den letzten finden möchten. Wenn Sie nur den ersten finden möchten, brechen Sie die Schleife, nachdem Sie den Gegenstand gefunden haben.