如何消除列表中的重复项?

San*_*eep 0 .net c# linq hash

class infoContact
{ 



    private string contacts_first_nameField;

    private string contacts_middle_nameField;

    private string contacts_last_nameField;        

    private Phonenumber[] phone_numbersField;

    private Emailaddress[] emailField;
}
Run Code Online (Sandbox Code Playgroud)

我有一个List<infoContact>列表包含我从其他程序得到的近7000.在7000个列表中,6500个是重复的.我正在寻找一种如何消除重复的方法.

如果first_name,last_name,emailaddresses,电话号码相同,则infoContact是重复的.

我想过使用HashSet<infoContact>和覆盖infoContact的getHashCode().

我很想知道这是否是最好的方法.如果这不是一个好方法,那么更好的方法是什么?

BFr*_*ree 5

您可以使用带有的Distinct扩展方法IEqualityComparer<T>.只需编写一个实现该接口的类,然后进行比较,然后就可以执行以下操作:

var filteredList = oldList.Distinct(new InfoContactComparer());
Run Code Online (Sandbox Code Playgroud)