Entwickler-Ecke

Basistechnologien - Auf bestimmten Arrayeintrag prüfen


Oliver M. - Di 02.08.11 15:58
Titel: Auf bestimmten Arrayeintrag prüfen
Ich habe eine Array von bestimmten Objekten. Diese Objekte haben alle eine Eigenschaft vom Type string. Ich möchte wissen ob / wieviele der Objekte einen bestimmten Wert in der Eigenschaft haben. Wie geht das?

Array.Where(???).Count()? Jaup, das ging mir schon durch den Kopf. Nur was kommt anstelle der ??? ?

Ich hoffe ich habe mich klar ausgedrückt,
Oliver


bakachan - Di 02.08.11 16:05

Ein Delegat auf die Prüfungsfunktion.

Oder du nimmst einfach die normale Variante: Lauf das Array per Foreach-Schleife durch und prüfe selbst.

Edit:
Siehe einen BEitrag weiter unten
(vielleicht sollte ich mich auch mal richtig in LINQ einarbeiten)


Ralf Jansen - Di 02.08.11 16:07

Die Bedingung die du in Where() packen wolltest kannst du auch gleich in Count() angeben.


C#-Quelltext
1:
array.Count(x => x.MeineLiebeProperty == "MeinLieberWert");                    


Wenn du die passenden Begriffe schon kanntest Where, Count wo ist das Problem die in der Hilfe dann nachzuschlagen? Vielleicht solltest du dich vorbereitend mal allgemein in Linq einlesen.


Oliver M. - Di 02.08.11 16:10

Ok, und X kann ich frei bestimmen... Hört sich einfach genug an. Ok, ich weis jetzt wie es geht, danke, aber warum =>? Klar, hab ich auch schon mal gelesen, aber ich habe den Artikel nicht verstanden.

Troz dem, vielen Dank!


Th69 - Di 02.08.11 18:25

Hallo Oliver,

das => bezeichnet einen Lambda-Ausdruck [http://msdn.microsoft.com/de-de/library/bb397687.aspx], d.h. es stellt die Kurzform einer anonymen Methode dar.


Oliver M. - Di 02.08.11 19:37

Ein Lambda-Ausdruck? Was sich die MS-Programmierer alles ausdenken...
Aber, dach wichtigste, es funktioniert!

Vielen Dank


Kha - Di 02.08.11 19:41

Das hat sich niemand bei Microsoft ausgedacht und ich denke, nachdem der Code nun funktioniert, solltest du dir doch noch einmal genau anschauen, warum er funktioniert und was das Lambda-Ding genau tut ;) . Ohne ein Mindestwissen an funktionaler Programmierung lässt sich heutzutage gar nicht mehr professionell in C# programmieren.


Oliver M. - Di 02.08.11 19:43

Warscheinlich hast du recht. Ich muss mal gucken, ob es in meinem Buch steht.

Vielen Dank für die Hilfe