Linq/lambda Frage .Wählen Sie (newby learning 3.0)
Ich bin das spielen mit den neuen Sachen von C#3.0 und ich habe diesen code (meist entnommen aus MSDN), aber ich kann nur erhalten, true,false,true... und nicht den realen Wert :
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var oddNumbers = numbers.Select(n => n % 2 == 1);
Console.WriteLine("Numbers < 5:");
foreach (var x in oddNumbers)
{
Console.WriteLine(x);
}
Wie kann ich das beheben, dass zum anzeigen der Liste von integer?
- Scheint n % 2 == 1 hat nichts mit Zahlen zu tun < 5?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie Ihre "Select", um eine "Wo"
Den "Select" - Methode ist das erstellen einer neuen Liste der lambda-Ergebnis für jedes element (true/false). Die "Wo" - Methode ist die Filterung basierend auf der lambda.
In C#, könnte man auch folgende syntax verwenden, die Sie finden können klarer:
denen der compiler übersetzt:
Ändern
Was auswählen tut, ist "konvertieren" einer Sache zur anderen. Also in diesem Fall, es ist "Konvertieren" n "n % 2 == 1" (das ist eine boolean) - somit erhalten Sie alles wahre und falses.
Es ist in der Regel für immer-Eigenschaften auf die Dinge. Zum Beispiel, wenn Sie hatte eine Liste von
Person
Objekte, und Sie wollten Ihre Namen, die Sie tun würde,Sie können sich das etwa so:
Auf "wählen" (in der "Filterung" Sinne des Wortes) ein Teil einer Sammlung, müssen Sie die Verwendung von Wo.
Dank Microsoft für das schreckliche benennen