-1

我正在从 List 的最后一个元素的末尾修剪一个字符,即使它有效,我觉得这不是最好的方法。

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

有没有更好的方法,比如使用 Lambda 表达式来获得相同的结果?

4

4 回答 4

12
 int lastPos = lstTopicsDisplay.Count - 1;
 lstTopicsDisplay[lastPos] = lstTopicsDisplay[lastPos].TrimEnd(';')
于 2013-05-07T12:34:11.367 回答
2
lstTopicsDisplay.Last().TrimEnd(';')
于 2013-05-07T12:34:56.093 回答
2

由于您只是更改列表中的一项,因此不需要循环。

只需计算要更改的项目的索引,并使用其余代码不变:

int i = lstTopicsDisplay.Count - 1;

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

或者简单地说:

lstTopicsDisplay[lstTopicsDisplay.Count - 1] = lstTopicsDisplay[lstTopicsDisplay.Count - 1].TrimEnd(';');
于 2013-05-07T12:36:31.180 回答
1

试试这个:

string lastValue = lstTopicsDisplay.[lstTopicsDisplay.Count - 1].TrimEnd(';');
于 2013-05-07T12:36:13.463 回答