Benutzer mit den meisten Antworten
C# - Zwei String-Listen vergleichen

Frage
-
Hallo,
ich möchte zwei Listen vom Typ string vergleichen. Die Reihenfolge der Items sollen ignoriert werden.
Bsp.:
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
list1.add("a"); list1.add("b");
list2.add("b"); list2.add("a");
list1.SequenceEqual(list2) würde hier false zurückgeben. Gibt es eine fertige Methode welche in diesem Beispiel die Reihenfolge von a und b ignoriert und true zurückgibt?
Antworten
-
Hi,
dann probier es mal so:
List<String> list1 = new List<string>() { "Def", "Abc" }; List<String> list2 = new List<string>() { "123", "Abc", "456", "Def", "789" }; Boolean result = list1.All( f => list2.Contains( f ) );
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport
- Bearbeitet Stefan FalzModerator Mittwoch, 22. August 2018 13:36
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 27. August 2018 06:05
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. September 2018 13:59
-
Hi,
wie wäre es mit:
public bool ContainsList2AllStringFromList1(List<string> list1, List<string> list2) { foreach(var str in list1) { if (!list2.Contains(str)) return false; } return true; }
Falls du kein Linq verwenden willst.
Viele Grüße, Chris
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 31. August 2018 13:39
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. September 2018 13:59
Alle Antworten
-
Hi,
es müssen immer alle Elemente in beiden Listen mit identischem Wert enthalten sein? Oder wäre es auch ausreichend, wenn alle Elemente von list1 in list2 vorkommen aber zusätzlich noch weitere Elemente in list2 (oder umgekehrt) vorhanden sind?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hi,
dann probier es mal so:
List<String> list1 = new List<string>() { "Def", "Abc" }; List<String> list2 = new List<string>() { "123", "Abc", "456", "Def", "789" }; Boolean result = list1.All( f => list2.Contains( f ) );
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport
- Bearbeitet Stefan FalzModerator Mittwoch, 22. August 2018 13:36
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 27. August 2018 06:05
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. September 2018 13:59
-
Danke.
Funktioniert es denn wie gewünscht?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hi,
wie wäre es mit:
public bool ContainsList2AllStringFromList1(List<string> list1, List<string> list2) { foreach(var str in list1) { if (!list2.Contains(str)) return false; } return true; }
Falls du kein Linq verwenden willst.
Viele Grüße, Chris
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 31. August 2018 13:39
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. September 2018 13:59