У меня есть список подробностей о большом количестве файлов. Этот список содержит идентификатор файла, дату последнего изменения и путь к файлу. Проблема в том, что есть дубликаты файлов, которые являются более старыми версиями и иногда имеют разные пути к файлам. Я хочу хранить только самую новую версию файла независимо от пути к файлу. Поэтому я создал цикл, который выполняет итерацию через упорядоченный список, проверяет, является ли идентификатор уникальным, и если да, то он сохраняется в новом уникальном списке.Удаление дубликатов из отсортированного списка C#
var ordered = list.OrderBy(x => x.ID).ThenByDescending(x => x.LastModifiedDate);
List<Item> unique = new List<Item>();
string curAssetId = null;
foreach (Item result in ordered)
{
if (!result.ID.Equals(curAssetId))
{
unique.Add(result);
curAssetId = result.ID;
}
}
Однако это все еще позволяя дубликатов в БД, и я не могу понять, почему этот код не работает, как ожидалось. По дубликатам я имею в виду, что файлы имеют одинаковый идентификатор, но разные пути к файлу, которые, как я уже говорил, не должны быть проблемой. Мне просто нужна последняя версия, независимо от ее пути. Может ли кто-нибудь еще увидеть, в чем проблема? Благодаря
var ordered = listOfItems.OrderBy(x => x.AssetID).ThenByDescending(x => x.LastModifiedDate);
List<Item> uniqueItems = new List<Item>();
foreach (Item result in ordered)
{
if (!uniqueItems.Any(x => x.AssetID.Equals(result.AssetID)))
{
uniqueItems.Add(result);
}
}
это то, что у меня есть сейчас, и это все еще позволяет дубликаты
Каково точное значение вашей 'LastModifiedDate'? этот 'date' имеет' hour: mm: ss'? – spajce
Да, это формат – RebeccaD
попытайтесь получить точное значение даты без 'hour: mm: ss' и используйте' .Distinct'. вы можете попробовать мой ответ. – spajce