J'ai ce qui est essentiellement un tableau irrégulier de paires de valeurs de noms - j'ai besoin de générer un ensemble de valeurs de noms uniques à partir de cela. le tableau dentelé est d'environ 86 000 x 11 valeurs. Peu importe comment je dois stocker une paire de valeurs de nom (une seule chaîne "nom = valeur" ou une classe spécialisée par exemple KeyValuePair).
Informations supplémentaires: Il existe 40 noms distincts et un plus grand nombre de valeurs distinctes - probablement dans la région 10 000 valeurs. J'utilise C# et .NET 2.0 (et les performances sont si faibles que je pense qu'il vaudrait mieux pousser tout mon tableau dentelé dans une base de données sql et faire un select distinct de là).Quel est le moyen le plus rapide de générer un ensemble unique en .net 2
est Ci-dessous le code actuel Im en utilisant:
List<List<KeyValuePair<string,string>>> vehicleList = retriever.GetVehicles();
this.statsLabel.Text = "Unique Vehicles: " + vehicleList.Count;
Dictionary<KeyValuePair<string, string>, int> uniqueProperties = new Dictionary<KeyValuePair<string, string>, int>();
foreach (List<KeyValuePair<string, string>> vehicle in vehicleList)
{
foreach (KeyValuePair<string, string> property in vehicle)
{
if (!uniqueProperties.ContainsKey(property))
{
uniqueProperties.Add(property, 0);
}
}
}
this.statsLabel.Text += "\rUnique Properties: " + uniqueProperties.Count;
Pourriez-vous donner plus d'exemples sur ce que les données ressemblent? Je ne suis pas sûr de comprendre ce que vous essayez de faire ici. Voulez-vous un ensemble sur les touches, ou les paires? –
Je suis avec des tapis - Je ne comprends pas vraiment où le tableau dentelé entre. Un exemple de code montrant les données d'entrée serait très pratique. –
Dans votre tableau en dents de scie, existe-t-il une corrélation de plusieurs à plusieurs entre les noms et les valeurs? Essayez-vous d'obtenir une corrélation de un à un ou une corrélation de un à plusieurs en tant que résultat (encore une fois des noms de valeurs)? Si vous pouvez répondre à cette question, je peux fournir une meilleure réponse. –