我有一个服务调用返回给我一个 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 渲染其中一个。如果其中任何一个的 IsPrivate 标记为 true,则显示将 IsPrivate 设置为 false b 的那个。如果两者都没有 IsPrivate 设置为 true,则显示具有较高点的那个......等等
实施这些规则的最佳地点是什么?我考虑过实现一个 IEqualityComparer 并在我的服务调用中执行一个 .Distinct() ,这似乎不是 IEqualityComparer 的本意。
建议?