如何从C#数组中删除重复项?

我一直在使用C#中的一个string[]数组,它从函数调用中返回。 我可能投到一个Generic集合,但我想知道是否有更好的方法来做到这一点,可能通过使用临时数组。

从C#数组中删除重复项的最佳方法是什么?


您可以使用LINQ查询来执行此操作:

int[] s = { 1, 2, 3, 3, 4};
int[] q = s.Distinct().ToArray();

这里是HashSet <string>方法:

public static string[] RemoveDuplicates(string[] s)
{
    HashSet<string> set = new HashSet<string>(s);
    string[] result = new string[set.Count];
    set.CopyTo(result);
    return result;
}

不幸的是,这个解决方案还需要.NET framework 3.5或更高版本,因为直到该版本才添加HashSet。 你也可以使用array.Distinct(),这是LINQ的一个特性。


如果你需要对它进行排序,那么你可以实现一种排除重复的排序。

然后用一块石头杀死两只鸟。

链接地址: http://www.djcxy.com/p/51319.html

上一篇: How do I remove duplicates from a C# array?

下一篇: CSV string handling