リストで List.Contains を使用しようとしています 比較するオブジェクトは C# のサービス リファレンスから取得され、それらの Equals メソッドは私のニーズに合いません。
私はIEquatablesを調べたり、「与えられた」オブジェクトでEqualsメソッドをオーバーライドする方法を調べたりしましたが、これに対する解決策が見つからないようです。これを行う効率的な方法を知っている人はいますか?
public void FilterNonExisting(List<ActivitiesActivity> commitActivitiesList)
{
// ActivitiesActivity is the object I'm given through a reference
List<int> itemsToDelete = new List<int>();
int commitCount = 0;
foreach (ActivitiesActivity commitItem in commitActivitiesList)
{
if (this.logList.Contains(commitItem)) // this is the part that doesn't work the way I want it to {
itemsToDelete.Add(commitCount);
}
commitCount++;
}
itemsToDelete.Reverse();
foreach (int item in itemsToDelete)
commitActivitiesList.RemoveAt(item);
if (commitActivitiesList.Count == 0)
{
throw new AllCommitedException("All lines had already been committed");
}