So zählst Duplikate in der Liste mit LINQ

Habe ich eine Liste der Elemente, die

  • John-ID
  • Matt-ID
  • John-ID
  • Scott-ID
  • Matt-ID
  • John-ID
  • Lucas ID

Ich will schieben Sie Sie zurück in einer Liste, wie so was auch bedeutet, ich möchte sozusagen durch die höchste Anzahl von Duplikaten.

  • John-ID 3
  • Matt-ID 2
  • Scott-ID 1
  • Lucas ID 1

Lassen Sie mich wissen, wie kann ich das machen mit LINQ und C#.

Danke An Alle

EDIT 2 Zeigt-Code:

    List<game> inventory = new List<game>();
    drinkingforDataContext db = new drinkingforDataContext();
    foreach (string item in tbTitle.Text.Split(' '))
    {

        List<game> getItems = (from dfg in db.drinkingfor_Games
                               where dfg.game_Name.Contains(tbTitle.Text)
                               select new game
                               {
                                   gameName = dfg.game_Name,
                                   gameID = Boomers.Utilities.Guids.Encoder.EncodeURLs(dfg.uid)
                               }).ToList<game>();

        for (int i = 0; i < getItems.Count(); i++)
        {
            inventory.Add(getItems[i]);
        }
    }

    var items = (from xx in inventory
                 group xx by xx into g
                 let count = g.Count()
                 orderby count descending
                 select new
                    {
                        Count = count,
                        gameName = g.Key.gameName,
                        gameID = g.Key.gameID
                    });

    lvRelatedGames.DataSource = items;
    lvRelatedGames.DataBind();

Diese query zeigt diese Ergebnisse:

  • 1 Hallo Welt mal
  • 1 Hallo Welt mal
  • 1 Hallo Welt.
  • 1 Hallo Welt mal
  • 1 Hallo Welt mal
  • 1 Hallo Welt mal
  • 1 Hallo Welt.
  • 1 Hallo Welt mal

Es gibt mir die Anzahl und die Namen, aber es nicht geben Sie mir die ID von dem Spiel....

Angezeigt werden soll:

  • 6 hello world mal 234234
  • 2 "Hallo Welt". 23432432
Kommentar zu dem Problem
angesichts Ihrer Ergebnisse ist es offensichtlich, dass das Programm behandelt alle Ihre Artikel so deutlich, wie ich sagte, müssen Sie zum implementieren benutzerdefinierter comparer, sonst ist es nicht möglich, wählen Sie verschiedene Werte Kommentarautor: aku

InformationsquelleAutor der Frage SpoiledTechie.com | 2009-01-18

Schreibe einen Kommentar