none
Doppelte einträge mit Linq selektieren. RRS feed

  • Frage

  • Hallo!

    Ich möchte Dateien ermitteln, die die selbe Größe haben.

    Ich habe eine List die mit eigenen Objekten gefüllt ist. Nun möchte ich das ganze mit Linq abfragen und bin noch recht neu was das angeht. 

    Die Objekte haben die eigenschafften Path und Size.

    So frage ich die List ab:

     var Query = (from entry in source
                            group entry by entry.FileSize into g
                            where g.Count() > 1
                            select g.Key);

    Leider bekomme ich durch g.key halt nur die größen zurück, die mehrfach vorhanden sind, nicht die Dateinamen. Hat jemand nen Tipp für mich wie ich die Abfrage gestallten kann, damit ich nicht nochmal mit einer neuen Abfrage die Dateinamen ermitteln muss?

    Vielen Dank schonmal.

    Grüße



    Freitag, 31. August 2012 22:07

Antworten

  • Du kannst im "select"-Ausdruck ein neues Objekt erstellen:

    var query = from entry in source

                     group entry by entry.FileSize into g

                     where g.Count() > 1

                     select new {

                        size = g.Key,

                        names = from item in g select item.Path

                    };

    dann halt darüber iterieren:

    foreach (var myGroup in query) {

      Console.WriteLine("Gruppe mit der Größe {0} enthält die folgenden Elemente:", myGroup.size);

      foreach (var name in myGroup.names) {

         Console.WriteLine(name);

      }

      Console.WriteLine();

    }


    MVP Data Platform Development My blog

    • Als Antwort markiert timetwister2k Samstag, 1. September 2012 11:22
    Samstag, 1. September 2012 10:37

Alle Antworten