Я сделал код, который в основном сравнивает два списка в C#. Первый список содержит свойства, как это:C#/LINQ быстрый способ сравнения двух списков и присвоения значения
- Itemid
- TOTALVIEWS
Первый список испытывает недостаток значения для TOTALVIEWS поэтому я задаю их из 2-го списка, который имеет следующие реквизиты:
- ItemID
- HitCount // это свойство для TotalViews, которое должно быть назначено
код выглядит следующим образом:
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;
}
}
}
Есть ли более эффективный способ, чтобы написать это с помощью LINQ или реализующего собственного компаратора, который будет работать быстрее на больших списках, содержит иногда 100000 элементов самого по себе?
Просьба приложить больше усилий для форматирования вашего вопроса в будущем. Вы задали более 100 вопросов - это много времени, чтобы справиться с тем, как работает Markdown. Там есть повод для плохого форматирования, как ваш пост, прежде чем я его исправил. –
Это также очень поможет, если вы предоставите [mcve]. Существуют различные способы приближения к этому ... словарь будет очевидной отправной точкой, но мы не знаем, могут ли быть два элемента в «HitCountItemIDS» с одним и тем же идентификатором, с одной стороны. –
HitCountItemIDS не может содержать повторяющиеся элементы, все они уникальны, как и первый список. И да, мои извинения, я приложу в нее больше усилий в будущем =) – User987