Ich habe einen Code erstellt, der im Grunde zwei Listen in C# vergleicht. Erste Liste enthält Eigenschaften wie folgt aus:C#/LINQ schnellste Möglichkeit, zwei Listen zu vergleichen und Wert zuzuweisen
- ItemID
- TotalViews
erste Liste Werte für TotalViews fehlt so dass ich sie aus der 2. Liste zuweisen, der diese Requisiten:
- ItemID
- HitCount // dies ist eine Eigenschaft für TotalViews, die zugewiesen werden muss
Der Code ist wie folgt:
foreach (var item in parsedMerchantData)
{
var itemInB = HitCountItemIDS.FirstOrDefault(x => x.ItemID == item.ItemID);
if (itemInB != null)
{
if (itemInB.HitCount != -1)
{
item.TotalViews = itemInB.HitCount;
}
else
{
item.TotalViews = 0;
}
}
}
Gibt es eine effizientere Art und Weise dies mit LINQ oder die Implementierung eines benutzerdefinierten Vergleich zu schreiben, die schneller auf größere Listen funktionieren würde, die manchmal 100000 Elemente in sich enthält?
Bitte bemühen Sie sich in Zukunft mehr, Ihre Frage zu formatieren. Sie haben jetzt über 100 Fragen gestellt - das ist viel Zeit, um sich mit Markdown vertraut zu machen. Es gibt eine Entschuldigung für eine schlechte Formatierung, wie es in Ihrem Post vor der Korrektur der Fall war. –
Es wäre auch sehr hilfreich, wenn Sie ein [mcve] bereitstellen würden. Es gibt verschiedene Wege, dies zu erreichen ... ein Lexikon wäre ein offensichtlicher Ausgangspunkt, aber wir wissen nicht, ob es zum Beispiel zwei Elemente in "HitCountItemIDS" mit derselben ID geben könnte. –
HitCountItemIDS darf keine doppelten Einträge enthalten, alle sind eindeutig und entsprechen der ersten Liste. Und ja, ich entschuldige mich, ich werde mich in Zukunft mehr anstrengen =) – User987