CustomObjectのIEnumerableを返すサービス呼び出しがあります。これは、変更する自由がないサードパーティの呼び出しです。CustomObjectは、次のような定義を持つと見なすことができます。
public class CustomObject
{
public int Id { get; set; }
public string Name { get; set; }
...
...
...
public int Points { get; set; }
public bool IsPrivate { get; set; }
}
返されたオブジェクトのリストの中に、特別なCustomObjectオブジェクトを含めることができます。次のような特別なルールを実装する必要があります。
- ID 1と3の両方の要素がリストに存在する場合は、ルールaに基づいてそのうちの1つのみをレンダリングします。それらのいずれかでIsPrivateにtrueのフラグが設定されている場合は、IsPrivateがfalseに設定されているものを表示します。どちらもIsPrivateがtrueに設定されていない場合は、ポイントの高いものを表示します...など。
これらのルールを実装するのに最適な場所はどこですか。IEqualityComparerを実装し、サービス呼び出しで.Distinct()を実行することを考えましたが、IEqualityComparerが意図していることとは異なります。
提案?