Ich habe zwei Listenschnellster Weg passende Artikel aus zwei Listen C# zu bekommen
List1 Nur zwei Eigenschaft. Kann Wörterbuch nicht verwenden, da es möglicherweise doppelte Schlüssel gibt. Die Kombination von Property1 und Property2 ist einzigartig.
public class List1
{
public string Property1 { get; internal set; }
public string Property2 { get; internal set; }
}
public class List2
{
public string Property1 { get; internal set; }
public string Property2 { get; internal set; }
public string Property3 { get; internal set; }
}
List<List1> mylist1 = new List<List1>() {
new List1() {Property1="664",Property2="Ford" },
new List1() {Property1="665",Property2="Ford" },
new List1() {Property1="664",Property2="Toyota" },
};
List<List2> mylist2 = new List<List2>() {
new List2() {Property1="664",Property2="Ford" ,Property3="USA"},
new List2() {Property1="665",Property2="Ford" ,Property3="USA"},
new List2() {Property1="664",Property2="Toyota" ,Property3="USA"},
new List2() {Property1="666",Property2="Toyota" ,Property3="USA"},
};
Ich brauche die passenden Artikel in mylist1 und mylist2. Die Übereinstimmung sollte nur für Property1 und Property2 auftreten. Property3 in der Mylist2 kann während des Vergleichs ignoriert werden.
Derzeit verwende ich
var matchingCodes = mylist1.Where(l1 => mylist2.Any(l2 => (l2.Property1 == l1.Property1 && l2.Property2==l1.Property2))).ToList();
, die perfekt funktioniert gut. Aber gibt es einen besseren Weg/schnellsten Weg, dies zu tun?
Ich kann List1 zu jedem anderen Typ ändern. aber nicht List2.
Gangen Format konsistente Einzüge – Paparazzi
LINQ ist selten die meisten und leistungsstark Option – Paparazzi