这个类有四个属性。我已经创建了一个这些对象的列表,我正试图过滤这些对象,只针对不同的事件。(当填充列表时,会有很多重复)
下面是正在填充的列表:

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_LogIEquatable<DNS_Log>打开Equals

10-01 23:11