Ich versuche, zwei Listen desselben Typs mit mehreren Eigenschaften dieses Typs zu vergleichen.C# Vergleiche zwei Listen desselben Objekttyps
Zum Beispiel
Ich habe eine Klasse mit dem Namen Einzelheiten
public class Details
{
public int id;
public string symbol;
public string code;
}
ich unten zwei Listen haben:
List<Details> list1 = new List<Details>();
List<Details> list2 = new List<Details>();
list1.Add(new Details() { id=1,symbol="ANSI",code="NITE"});
list1.Add(new Details() { id = 1, symbol = "ANSI", code = "CALGO" });
list1.Add(new Details() { id = 1, symbol = "ANSI", code = "CANT" });
list1.Add(new Details() { id=2,symbol="ANSI",code="NITE"});
list1.Add(new Details() { id = 2, symbol = "ANSI", code = "CALGO" });
list1.Add(new Details() { id = 2, symbol = "ANSI", code = "CANT" });
list2.Add(new Details() { id = 1, symbol = "ANSI", code = "NITE" });
list2.Add(new Details() { id = 1, symbol = "ANSI", code = "CALGO" });
list2.Add(new Details() { id = 2, symbol = "ANSI", code = "NITE" });
Ich möchte, dass die Daten von List1 nur die gleiche ID hat, Symbol aber anderer Code.
Also, in obigen Szenario wird das Ergebnis wie folgt sein.
Es wäre großartig, wenn dies durch Linq statt foreach erreicht werden kann.
Ich versuchte unten, aber das ist nicht korrekt.
var temp =list1.Where(x=>list2.Any(z=>x.id==z.id && string.Equals(x.symbol,z.symbol) && !string.Equals(x.code,z.code)));
Verwenden Sie ein Join. Siehe msdn: https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng