2016-06-07 10 views
1

vorausgesetzt, ich habe eine Liste wie unten:einen bestimmten Wert in List Filter nach Wo LINQ mit

List <Customclass> someList = new List<CustomClass>() 
{ 
    new CustomClass { color = "Red", type = "lcd" }, 
    new CustomClass { color = "Red", type = "cvr" }, 
    new CustomClass { color = "Green", type = "lcd" }, 
    new Customclass { color = "Green", type = "cvr" }, 
    new CustomClass { color = "Blue", type = "lcd" }, 
    new CustomClass { color = "Blue", type = "cvr" } 
}; 

, wie ich die Liste filtern, zu können, um nur die color Wert zu zeigen und dass die type muss lcd

so etwas wie dies in SQL

SELECT [color] FROM [someList] WHERE [type] = 'lcd';

und die Ausgabe wäre:

Red 
Green 
Blue 

ich bin sehr neu zu LINQ, da ich keinen Hinweis darauf habe, wie man das Ding macht. also hoffe ich, dass jemand oder jemand mir hier helfen kann. danke

Antwort

3

Sie brauchen etwas wie folgt aus:

var colors = someList.Where(cc=>cc.type=="lcd") 
        .Select(cc=>cc.color); 
  • Zunächst haben Sie Ihre Liste zu filtern, die Where Verfahren und ein Prädikat verwenden, wie die Elemente in der Ausgabereihenfolge erfordert, dass haben sollte eine Art lcd.
  • Wenn Sie Ihre Liste filtern, müssen Sie eine Projektion mit der Methode Select erstellen und nur die color jedes Elements der gefilterten Sequenz auswählen.
+0

das ist es. ich danke dir sehr. Du hast mir ein Leben gerettet. – TheQuestioner

+0

@TheQuestioner Sie sind willkommen :) Ich bin froh, dass ich geholfen habe! – Christos

+0

auch, wenn ich fragen darf, ist der Ansatz der gleiche, wenn ich habe, sagen wir 2 oder 3 wo Aussagen?. oder wie würde ich es tun? Danke :) – TheQuestioner

0

Einfach,

someList.Where(x=> x.type == "lcd").Select(x=> x.color).ToList(); 

Oder

var results = (from x in someList 
       where x.color == "lcd" 
       select x.color).ToList(); 
+0

Ausgenommen, dass nicht die Farbe Teil ... Christos Antwort ist die richtige hier. –

+0

aber wie kann ich nur die 'farbe' anzeigen? – TheQuestioner

+0

@TheQuestioner Ich habe bereits die Antwort bearbeitet. Sie haben mehrere Optionen und Syntaxen dafür. Hör zu. – user3185569