2009-03-31 4 views
27

Was ist das Linq-Äquivalent zur map! or collect!-Methode in Ruby?Linq Karte! oder sammeln!

a = [ "a", "b", "c", "d" ] 
    a.collect! {|x| x + "!" } 
    a    #=> [ "a!", "b!", "c!", "d!" ] 

ich konnte dies tun, indem mit einer foreach über die Sammlung iterieren, aber ich frage mich, ob es eine elegantere Linq Lösung war.

+0

Linq einen funktionalen Ansatz nimmt, so dass Sie in der Regel nicht ein direktes tun Modifikation wie im obigen Beispiel. Dies entspricht jedoch mehr der erwarteten Verwendung von Map und Collect in Ruby (ohne!) –

Antwort

38

Map = Wählen

var x = new string[] { "a", "b", "c", "d"}.Select(s => s+"!"); 
24

Die Funktion höherer Ordnung map am besten in Enumerable.Select dargestellt, die eine Erweiterungsmethode in System.Linq ist.

Falls Sie neugierig die anderen Funktionen höherer Ordnung wie diese ausbricht:

reduce ->Enumerable.Aggregate
filter ->Enumerable.Where