2013-05-07 60 views
-1

我從列表的最後一個元素的末尾修剪一個字符,即使它工作正常,我覺得這不是最好的方法。修剪列表的最後一個元素的末尾

for (int i = lstTopicsDisplay.Count - 1; i >= 0; i--) 
{ 
    if (i == lstTopicsDisplay.Count-1) 
    { 
     string lastValue = lstTopicsDisplay[i].TrimEnd(';'); 
     lstTopicsDisplay[i] = lastValue; 
    } 
} 

有沒有更好的方法,比如使用Lambda表達式來獲得相同的結果?

+4

你爲什麼迭代名單?你不能只更新最後一項? – ken2k 2013-05-07 12:34:17

+0

我會保持你已經做到這一點。如果你不需要,就避免使用for循環。在這裏沒有任何使用lambda的好處。 – Tigran 2013-05-07 12:36:49

回答

12
int lastPos = lstTopicsDisplay.Count - 1; 
lstTopicsDisplay[lastPos] = lstTopicsDisplay[lastPos].TrimEnd(';') 
2
lstTopicsDisplay.Last().TrimEnd(';') 
+1

這會實際更新最後一個元素嗎? – V4Vendetta 2013-05-07 12:39:57

+0

@ V4Vendetta不,它不會。 – ken2k 2013-05-07 12:42:46

1

試試這個:

string lastValue = lstTopicsDisplay.[lstTopicsDisplay.Count - 1].TrimEnd(';'); 
2

由於只是更改列表中的一個項目,你不需要循環。

只是計算要更改的項目索引,並使用代碼不變,其餘:

int i = lstTopicsDisplay.Count - 1; 

string lastValue = lstTopicsDisplay[i].TrimEnd(';'); 
lstTopicsDisplay[i] = lastValue; 

或者乾脆:

lstTopicsDisplay[lstTopicsDisplay.Count - 1] = lstTopicsDisplay[lstTopicsDisplay.Count - 1].TrimEnd(';'); 
相關問題