2009-03-31 7 views
27

रूबी में map! or collect! विधि के बराबर लिंक क्या है?लिंक नक्शा! या ले लीजिए!

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

मैं एक foreach के साथ संग्रह से अधिक पुनरावृत्ति कर ऐसा कर सकता है, लेकिन मैं सोच रहा था अगर वहाँ एक और अधिक सुरुचिपूर्ण Linq समाधान था।

+0

Linq एक कार्यात्मक दृष्टिकोण ताकि आप आमतौर पर एक में जगह कर नहीं किया जाएगा लेता है:

मामले में आप उत्सुक अन्य उच्च क्रम कार्यों इस तरह बाहर तोड़ रहे हैं उपरोक्त आपके उदाहरण में संशोधन। हालांकि, यह मानचित्र के अपेक्षित उपयोग से मेल खाता है और रूबी में इकट्ठा होता है (बिना!) –

उत्तर

38

मानचित्र = का चयन करें

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

उच्च क्रम समारोह map सबसे अच्छा Enumerable.Select में प्रतिनिधित्व किया है जो System.Linq में एक विस्तार विधि है।

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