Я работаю с API, который возвращает дубликаты идентификаторов. Мне нужно вставить эти значения в мою базу данных с помощью EF. Прежде чем пытаться добавить объекты, я хочу обрезать любые дубликаты.обрезать дубликаты с помощью Linq
У меня есть небольшой пример кода, который я пытаюсь написать.
var itemsToImport = new List<Item>(){};
itemsToImport.Add(new Item() { Description = "D-0", Id = 0 });
for (int i = 0; i < 5; i++)
{
itemsToImport.Add(new Item(){Id = i,Description = "D-"+i.ToString()});
}
var currentItems = new List<Item>
{
new Item() {Id = 1,Description = "D-1"},
new Item(){Id = 3,Description = "D-3"}
};
//returns the correct missing Ids
var missing = itemsToImport.Select(s => s.Id).Except(currentItems.Select(s => s.Id));
//toAdd contains the duplicate record.
var toAdd = itemsToImport.Where(x => missing.Contains(x.Id));
foreach (var item in toAdd)
{
Console.WriteLine(item.Description);
}
Что мне нужно изменить, чтобы исправить мою переменную «toAdd», чтобы возвращать только одну запись, даже если есть повторение?
У предметов с дублирующимися идентификаторами есть одинаковые данные? –