8
votes

Manière efficace d'éliminer les cordes en double d'un tableau à chaîne en C #

J'aimerais connaître une méthode efficace pour éliminer les éléments en double d'un tableau à chaîne en C #.

Par exemple, P>

1) Sorted the array

2) Replaced the duplicate entries with null

3) Copied NOT null string to a new array.


0 commentaires

4 Réponses :


7
votes

Jetez un coup d'œil à méthode ienumérable.distion ()


0 commentaires

15
votes

Vous pouvez utiliser un hashset: xxx


1 commentaires

Puis-je utiliser Var dans VS 2005 avec .NET 2.0?



10
votes

Vous ne pouvez pas redimensionner un tableau dans .NET, alors quelle que soit la manière que vous utilisez pour supprimer les duplicats, vous devez créer un nouveau tableau pour le résultat.

Vous pouvez utiliser un hashset Pour supprimer facilement les duplicats: P>

a = new HashSet<string>(a).ToArray();


2 commentaires

J'ai installé la mise à jour .NET 3.5. Mais je reçois l'erreur "," System.collections.Generic.HashSet 'ne contient pas de définition pour "Toarray" ".


@pragadheesh: le toarray n'est pas une méthode dans la classe elle-même, c'est une méthode d'extension. Vous avez besoin de à l'aide de system.linq; en haut du fichier pour obtenir les méthodes d'extension.



6
votes

Si vous utilisez .NET 3.0, vous pouvez utiliser LINQ:

using System;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] a = { "abc", "xyz", "abc", "def", "ghi", "asdf", "ghi", "xd", "abc" };
            string[] b = a.Distinct().ToArray();
            foreach (string s in b)
                Console.WriteLine(s);
            Console.ReadLine();
        }
    }
}


0 commentaires