我們知道,如果您有:轉換的代碼片段存在使用Array.ForEach
var aa = new [] { 1, 2, 3, 4, 5 };
for (int i = 0; i < aa.length; ++i)
{
aa[i] = aa[i] + 1;
}
它真的
var aa = new [] { 1, 2, 3, 4, 5 };
Arrary.ForEach(aa, a => a + 1);
但是,如果我有這樣的內容:
var aa = new [] { 1, 2, 3, 4, 5 };
var ab = new [] { 1, 2, 3, 4, 5 };
for (int i = 0; i < aa.length; ++i)
{
aa[i] = ab[i] + 1;
}
我可以將其轉換爲僅使用一個Array.ForEach?或者,如果你想讓所有函數式編程變得瘋狂,你會怎麼做呢?笨重的循環看起來很醜。
我無法獲得您的第一個ForEach代碼來編譯。 「新動作(a => a + 1)」沒有意義,因爲「a => a + 1」是動作,「a + 1」不是說明。 –
2009-01-28 04:12:10
對不起,我現在在工作,所以我不在.Net框架3.5上。我知道使用委託可以工作,但我不確定它是否可以改爲使用lambda表達式,而不是...... – 2009-01-28 04:17:03
「或者,如果你想讓所有函數編程變得瘋狂,你會怎麼做呢?」 - 使用F#:) – MichaelGG 2009-02-06 04:05:13