W Ruby można korzystać z mapy/zbierać metodę na tablicy, aby go zmodyfikować:C# Array Mapa/Zbierz
a = [ "a", "b", "c", "d" ]
a.collect! {|x| x + "!" }
a #=> [ "a!", "b!", "c!", "d!" ]
Czy istnieje prosty sposób to zrobić w C#?
W Ruby można korzystać z mapy/zbierać metodę na tablicy, aby go zmodyfikować:C# Array Mapa/Zbierz
a = [ "a", "b", "c", "d" ]
a.collect! {|x| x + "!" }
a #=> [ "a!", "b!", "c!", "d!" ]
Czy istnieje prosty sposób to zrobić w C#?
a = a.Select(s => s + "!").ToArray();
można spróbować tego
var a = new[] { "a", "b", "c", "d" };
a = a.Select(p => p + "!").ToArray();
Tak, przy użyciu LINQ (ale nie będą modyfikować oryginalnej kolekcji)
var a=new[]{"a","b","c","d"};
a.Select(x=>x+"!");
Wolę używając convertall ponieważ jest to szybsze i wierzę bardziej intuicyjny.
var a = a.ConvertAll(x => x + "!").ToArray();
Co sprawia, że jest to szybsze lub bardziej intuicyjne? –
Jest to szybsze, ponieważ w międzyczasie nie trzeba tworzyć leniwego wyliczenia. IMO jest bardziej czytelny, ponieważ mówi dokładnie, co robi. Mapa jest tym, czego używa większość innych języków. – mythz
Czy zatem "mapa" nie byłaby bardziej intuicyjna? –
Idealnie! Dziękuję za szybką odpowiedź! – RyanScottLewis
należy pamiętać, że tworzy to nową tablicę i nie modyfikuje oryginalnej tablicy, jak pytano w pytaniu OP. – spender
@spender: Bardzo prawdziwe. "a =" na początku tylko zajmuje się tym konkretnym punktem odniesienia do nowej tablicy, jeśli istnieją inne odniesienia do oryginalnej tablicy, nie będą one aktualizowane. – Tanzelax