首页>>帮助中心>>香港vps服务器的C#中如何使Intersect正确识别自定义类型

香港vps服务器的C#中如何使Intersect正确识别自定义类型

2024/4/5 53次

要使香港vps服务器的Intersect方法正确识别自定义类型,需要实现IEqualityComparer接口来对自定义类型进行比较。以下是一个示例代码:

using System;

using System.Collections.Generic;

using System.Linq;

class Program

{

static void Main()

{

List<Student> list1 = new List<Student>

{

new Student { Id = 1, Name = "Alice" },

new Student { Id = 2, Name = "Bob" },

new Student { Id = 3, Name = "Charlie" }

};

List<Student> list2 = new List<Student>

{

new Student { Id = 2, Name = "Bob" },

new Student { Id = 4, Name = "David" },

new Student { Id = 5, Name = "Eve" }

};

var intersectedStudents = list1.Intersect(list2, new StudentComparer());

foreach (var student in intersectedStudents)

{

Console.WriteLine($"Id: {student.Id}, Name: {student.Name}");

}

}

class Student

{

public int Id { get; set; }

public string Name { get; set; }

}

class StudentComparer : IEqualityComparer<Student>

{

public bool Equals(Student x, Student y)

{

return x.Id == y.Id && x.Name == y.Name;

}

public int GetHashCode(Student obj)

{

return obj.Id.GetHashCode() ^ obj.Name.GetHashCode();

}

}

}

复制代码

在这个示例中,定义了一个Student类,并实现了IEqualityComparer接口来比较两个Student对象。然后,在Main方法中,创建了两个Student对象的列表,并使用Intersect方法找到两个列表中共同存在的元素。

一诺网络香港免备案专区,提供「香港增强VPS」和「香港特惠VPS」两种类型的高可用弹性计算服务,搭载新一代英特尔®至强®铂金处理器,接入CN2低延时高速回国带宽线路,网络访问顺滑、流畅。机房网络架构采用了BGP协议的解决方案可提供多线路互联融合网络,使得不同网络运营商线路的用户都能通过最佳路由实现快速访问。香港云VPS低至29/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2