Erste Anzahl von doppelten Elementen in einer Liste
Ich versuche, die Anzahl der für die häufigste duplizierte Element in einer Liste.
Bisher habe ich:
List<string> brandList = new List<string>();
enthält 5
verschiedenen soft-drink-Marken, und die Zählung ist 100
. Ich brauche, um herauszufinden, welche Marke hat die meisten Duplikate in der Liste und zählen Sie, wie viele Duplikate vorhanden sind.
- (Doppelte?) Siehe stackoverflow.com/questions/19406242/select-distinct-using-linq
- Er braucht die Anzahl der Duplikate, nicht die unterschiedlichen Werte.
- Das ist nicht C# oder zumindest nicht kompilieren
- Bekommt das entfernen der Duplikate, nicht das was ich Suche. aber trotzdem danke..
- Im voting zu schließen diese Frage, da Ihre noch nicht klar, was der OP wirklich braucht. Neue Anforderungen kommen jede Sekunde...
- wie schwer ist es für dich, gib mir code gibt mir die Frequenz, die der doppelten Elemente in einer Liste in visual studio C# windows forms-Anwendung-code, der NICHT von linq ? aber im basic-format? lol
InformationsquelleAutor chersharp | 2015-07-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren code doesn ' T kompilieren. Vorausgesetzt, du meinst
List<String>
als Speicher der Marken:haben Sie
report
alsVorausgesetzt, dass Ihre pseudo-code tatsächlich war:
und Ihre
Brand
Klasse überschreibtEquals
+getHashCode
oder hat eine Eigenschaft wieBrandID
dem ist der Bezeichner. N youow wollen, um die Anzahl von den beliebtesten Marken, die Sie verwenden können, LINQ:Update: Wenn es eigentlich eine
List<string>
(Frage editiert wurde):using System.Linq;
an der Spitze der code-Datei, dann sind Sie in der Lage, um die Linq-extension-Methoden wieEnumerable.GroupBy
. Btw, ist es wirklich einList<string>
?Du kannst versuchen die Gruppe mit LINQ, indem Sie die Elemente und berechnen Sie zählen
Haben, dann wird der group by-Schlüssel (Element) und Wert (Count)
Ohne LinQ:
using System.Linq;
Dann haben Sie die Count () - Erweiterungsmethode. Der Graf (ohne Klammer) wird auf eine Eigenschaft der List-Klasse.System.Linq
in meine importiert.Etwas wie dies vielleicht:
Jetzt haben Sie eine Liste mit den tatsächlichen trinken-Anzahl und die Anzahl der für diese Nummer.
EDIT: Immer die Marke mit den meisten count ist jetzt einfach, z.B. durch:
EDIT2: Ohne LINQ die folgenden arbeiten, die viel länger und komplizierter:
Nun die
key
enthalten sollte, die Marke mit der höchstenCount
.var
Schlagwort von der eigentlichen Art, aber das IST basic C#. Verwenden Sie einfach VS, um zu sehen, was der eigentliche Typ hintervar
ist. Es gibt auch keineGroupBy
innerhalb der letzten code.Zählen Elements mit einem bestimmten Wert in einer Liste verwenden :
Beispiel :
Ausgabe
P. S.
Zu diesem code
r => r.ToUpper() == popularBrands[i].ToUpper()
:r ist die variable hat einen Wert aus unserer Liste (genommen eins nach dem anderen). Wir verwenden auch ToUpper (), um sicherzustellen, dass unsere Prüfung ist der groß-und Kleinschreibung.
So dass wir im Grunde eine Schleife durch die Sammlung, wobei Werte von eins nach dem anderen. Jedes mal legen wir Wert auf
r
variable und prüfen, ob diese variable erfüllt die Bedingung. Wenn ja, zählen wir es, wenn nicht - wir bewegen Sie einfach zum nächsten Wert.