这个类有四个属性。我已经创建了一个这些对象的列表,我正试图过滤这些对象,只针对不同的事件。(当填充列表时,会有很多重复)
下面是正在填充的列表:
dnsLogs.Add( new DNS_Log { Destination = destination,
Source_IP = sourceIp,
Domain_Controller = domainController,
DateTime = datetime });
以下是我试图筛选出的唯一不同的:
dnsLogs = dnsLogs.Distinct().ToList();
为什么这不起作用?我需要在不同的参数中使用linq表达式吗?我想比较这些物体的整体属性。有什么更简单的方法吗?
p.s.我已经做了一个定制的
DNS_Log
看起来很好,但是我不知道如何在这个场景中实现它。 最佳答案
你基本上有三个选择:
在调用IEqualityComparer<DNS_Log>
时提供您的自定义Distinct
(类似于dnsLogs.Distinct(myEqualityComparerInstance).ToList();
实施
覆盖DNS_Log
和IEquatable<DNS_Log>
打开Equals