집 >백엔드 개발 >C#.Net 튜토리얼 >중복을 제거하고 정렬하는 방법
중복 제거 및 정렬은 개발 과정에서 자주 발생하는 문제입니다. 이 글에서는 이를 요약하겠습니다.
방법 1: 내장된 구별 사용
코드는 다음과 같습니다.
//方法1:使用默认的distinct方法//只能针对基元类型列表,对于自定义类型组合字段条件需要自定义相等比较器实现IEqualityComparer接口,比较麻烦var result1 = list.Distinct().ToList();
방법 2: GroupBy 사용
코드는 다음과 같습니다.
방법 3: 자체 확장 사용 DistinctBy 메서드
의 코드는 다음과 같습니다.
//方法2:使用GroupByvar result2 = list.GroupBy(p => new { p.BunkCode, p.BunkPrice }) .Select(p => p.First()) .ToList();
전체 코드는 다음을 참조하세요.
//方法3:使用自己扩展的DistinctBy方法//利用HashSet的key不能重复的特性var result3 = list.DistinctBy(p => new { p.BunkCode, p.BunkPrice }) .ToList();
동시에, 또한 확장 메서드도 게시했습니다.
/// <summary>/// 测试类型/// </summary>public class TestDistinctClass {public int Id { get; set; }public string BunkCode { get; set; }public double BunkPrice { get; set; } }/// <summary>/// 测试去重/// </summary>private static void TestDistinct() {//数据源var list = new List<testdistinctclass> {new TestDistinctClass { Id= 1, BunkCode= "A", BunkPrice= 101},new TestDistinctClass { Id= 2, BunkCode= "B", BunkPrice= 102},new TestDistinctClass { Id= 3, BunkCode= "C", BunkPrice= 103},new TestDistinctClass { Id= 4, BunkCode= "D", BunkPrice= 104},new TestDistinctClass { Id= 5, BunkCode= "A", BunkPrice= 101} };//方法1:使用默认的distinct方法//只能针对基元类型列表,对于自定义类型组合字段条件需要自定义相等比较器实现IEqualityComparer接口,比较麻烦var result1 = list.Distinct().ToList();//方法2:使用GroupByvar result2 = list.GroupBy(p => new { p.BunkCode, p.BunkPrice }) .Select(p => p.First()) .ToList();//方法3:使用自己扩展的DistinctBy方法//利用HashSet的key不能重复的特性var result3 = list.DistinctBy(p => new { p.BunkCode, p.BunkPrice }) .ToList(); }</testdistinctclass>
정렬의 경우 아래와 같이 Linq에서 제공하는 API를 사용하면 됩니다.
위 내용은 중복을 제거하고 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!