Erstellen eines Wörterbuchs mit Zählungen von Elementen in einer Liste

7

Ich habe eine Liste mit einer Menge Strings, die mehr als einmal vorkommen können. Ich möchte diese Liste nehmen und ein Wörterbuch der Listenelemente als Schlüssel und die Anzahl ihrer Vorkommen als Wert erstellen.

Beispiel:

%Vor%

und das Ergebnis wäre ein Dictionary mit:

%Vor%

Ich habe eine Möglichkeit, dies zu tun, aber es scheint nicht, als ob ich die guten Sachen in C # 3.0 verwende.

%Vor%     
Ryan Ische 26.03.2009, 19:53
quelle

4 Antworten

20

Sie können dazu die Gruppenklausel in C # verwenden.

%Vor%

Sie können die Erweiterungsmethoden auch direkt aufrufen, wenn Sie möchten:

%Vor%

Von hier aus ist es ein kurzer Sprung, es in ein Dictionary<string, int> :

zu setzen %Vor%     
casperOne 26.03.2009, 19:59
quelle
8

Ich hätte eine spezialisierte Liste erstellt, die vom Wörterbuch unterstützt wird, und die add-Methode würde auf Mitgliedschaft prüfen und die Anzahl erhöhen, falls sie gefunden wird.

sorta like:

%Vor%     
sfossen 26.03.2009 20:06
quelle
1

Eine Idee wäre, dem Wörterbuch einen Standardwert von null zu geben Sie müssen das erste Vorkommen nicht speziell behandeln.

    
MarkusQ 26.03.2009 19:58
quelle
0

Nun, es gibt keinen besseren Weg, das zu tun.

Vielleicht könnten Sie eine LINQ-Abfrage schreiben, die die Strings gruppiert und dann zählt, wie viele Strings es in jeder Gruppe gibt, aber das wäre nicht annähernd so effizient wie das, was Sie bereits haben.

    
Guffa 26.03.2009 20:02
quelle

Tags und Links