我自己是LINQ的忠實粉絲。簡潔的藝術反映在LINQ中。同樣在.Net中,我們說LINQ是循環之前的一步,或者我們可以說LINQ是循環++。可以要求LINQ跳過/保留特定索引嗎?
但這真的是這樣嗎?
爲什麼我正在判斷是因爲我試圖將這個循環代碼轉換爲LINQ,但感到困惑,做LINQ跳過/離開索引?
double[] NMD = {3.0, 5.0, 6.0, 65.0, 34.0, 3.0, 5.0, 6.0, 65.0, 34.0, 3.0, 5.0, 6.0, 65.0, 34.0 };
for(int i=1; i<NMD.Length-1; i+=2)
NMD[i] = NMD[i]/10;
我在這裏要求循環從索引1開始,在倒數第二個值停止,也被2跳的值,所以我們可以做到這一點的LINQ。國際海事組織我不這麼認爲但是我會很樂意被證明是錯誤的。
如果您需要運行更新,您的for循環是最乾淨的解決方案。 – dasblinkenlight 2012-04-21 10:43:09
我同意@dasblinkenlight,但是除此之外,如果你已經有了工作代碼,那麼只需要使用LINQ就不值得重寫它。 – 2012-04-21 10:44:35
@Ian:我不同意。在這種情況下,原始代碼很可能是* buggy *(因爲它不修改最後一個元素,即使它有一個奇怪的索引!)以更多功能樣式重寫代碼可以幫助消除這些問題(因爲您聲明期望的輸出,而不是實現它的算法)。 – 2012-04-21 10:46:31