溫馨提示×

c#中去重函數與LINQ的結合使用

c#
小樊
116
2024-09-20 07:25:50
欄目: 編程語言

在C#中,去重函數和LINQ結合使用可以方便地對集合進行去重操作。以下是一個示例:

首先,創建一個去重函數,該函數接受一個泛型集合作為參數,并返回一個新的去重后的集合:

public static IEnumerable<T> Distinct<T>(this IEnumerable<T> collection)
{
    return collection.DistinctCore();
}

private static IEnumerable<T> DistinctCore<T>(this IEnumerable<T> collection)
{
    var seen = new HashSet<T>();
    foreach (var item in collection)
    {
        if (!seen.Add(item))
        {
            yield return item;
        }
    }
}

接下來,使用LINQ對集合進行去重操作:

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        // 創建一個包含重復元素的集合
        List<int> numbers = new List<int> { 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9 };

        // 使用LINQ對集合進行去重操作
        var distinctNumbers = numbers.Distinct();

        // 輸出去重后的集合
        Console.WriteLine("去重后的集合:");
        foreach (var number in distinctNumbers)
        {
            Console.WriteLine(number);
        }
    }
}

在這個示例中,我們首先創建了一個包含重復元素的整數列表。然后,我們使用LINQ的Distinct()方法對集合進行去重操作。最后,我們輸出去重后的集合。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女