それぞれSomeId、AnotherId、SomeOtherId、Timestampを持つオブジェクト(以下のコードサンプルではexobject)のリストがあります。このリストには、タイムスタンプの異なるレコードが重複している可能性があります。 古いタイムスタンプでこのオブジェクトのすべての重複を削除し、最新のものを保持したいと思います。リストから重複を削除するC#の条件に基づいての条件に基づいて
サンプルオブジェクト:
SomeId AnotherId SomeOtherId Timestamp
1 2 1 10
1 2 1 20
1 3 2 30
2 3 4 40
1 3 2 50
私の必要なリストが
1,2,1,20 and 1,3,2,50 and 2,3,4,40.
する必要があります私はC#で非常に粗製の実装を持ってこれを行うのですか。
for (int i = 0; i < exObject.Count - 1; i++)
{
for (int j = i + 1; j < exObject.Count - 1; j++)
{
if (exObject[i].SomeId == exObject[j].SomeId && exObject[i].AnotherId == exObject[j].AnotherId && exObject[i].SomeOtherId == exObject[j].SomeOtherId)
{
if (exObject[i].TimeStamp < exObject[j].TimeStamp)
exObject[i].TimeStamp = exObject[j].TimeStamp;
exObject.Remove(exObject[j]);
}
}
}
私はこれを達成するために使用することができますラムダがある場合は、これを行うかするために、よりエレガントでよりよい方法があるかどうかを知りたいです。 3つのフィールドによって
あなたはexObject.Distinct()を使いたくありませんか? – Damirchi
私は今、Distinctのアプローチを試みています。 – yazz