如何在c#中实现自定义的去重函数

   2024-09-30 7400
核心提示:在C#中,实现自定义的去重函数可以使用多种方法using System;using System.Collections.Generic;using System.Linq;class Progra

在C#中,实现自定义的去重函数可以使用多种方法

using System;using System.Collections.Generic;using System.Linq;class Program{    static void Main()    {        int[] numbers = { 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9 };        int[] uniqueNumbers = RemoveDuplicates(numbers);        Console.WriteLine("Original array:");        foreach (int number in numbers)        {            Console.Write(number + " ");        }        Console.WriteLine("\nUnique array:");        foreach (int number in uniqueNumbers)        {            Console.Write(number + " ");        }    }    static int[] RemoveDuplicates(int[] numbers)    {        // 使用HashSet去重        HashSet<int> uniqueNumbersSet = new HashSet<int>(numbers);        int[] uniqueNumbersArray = uniqueNumbersSet.ToArray();        return uniqueNumbersArray;    }}

在这个示例中,我们使用了HashSet类来实现去重。HashSet是一个无序且不包含重复元素的集合。首先,我们将原始数组转换为HashSet,这将自动删除所有重复元素。然后,我们将HashSet转换回数组并返回结果。

如果你需要保留原始数组的顺序,你可以使用以下方法:

static int[] RemoveDuplicates(int[] numbers){    // 使用Dictionary去重并保留顺序    Dictionary<int, bool> uniqueNumbersDict = new Dictionary<int, bool>();    foreach (int number in numbers)    {        if (!uniqueNumbersDict.ContainsKey(number))        {            uniqueNumbersDict[number] = true;        }    }    int[] uniqueNumbersArray = uniqueNumbersDict.Keys.ToArray();    return uniqueNumbersArray;}

在这个示例中,我们使用了Dictionary类来实现去重。我们遍历原始数组,并将每个元素添加到Dictionary中。如果元素已经存在于Dictionary中,我们跳过它。最后,我们将Dictionary的键转换为数组并返回结果。这将保留原始数组的顺序。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号