多数のファイルに関する詳細のリストがあります。このリストには、ファイルID、最終変更日、およびファイルパスが含まれています。問題は、古いバージョンのファイルが重複していて、ファイルパスが異なる場合があることです。ファイルパスに関係なく、ファイルの最新バージョンのみを保存したい。そこで、順序付きリストを反復処理し、IDが一意であるかどうかを確認し、一意である場合は新しい一意のリストに格納されるループを作成しました。
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;
}
}
ただし、これでもDBへの複製が許可されており、このコードが期待どおりに機能しない理由がわかりません。重複とは、ファイルの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);
}
}
これは私が今持っているものであり、それはまだ複製を許可しています