【发布时间】:2015-06-01 18:57:35
【问题描述】:
我有这个:
var lineArray = line.Split(';');
lineArray.ToList().ForEach(x =>
{
if (x == "(null)")
x = "NULL";
else
x = string.Format("'{0}'", x);
});
这运行良好,但似乎没有改变lineArray 中的元素。我想将ForEach 的结果分配给var,但它返回无效。
有什么想法吗?
编辑:我认为这是因为 ToList() 返回值没有分配到任何地方......
【问题讨论】:
-
不要像那样使用
ForEach- 使用for循环。 -
@Steve 我不会说
rare。在很多情况下,每一种都有其独特的优点。 -
无论你怎么做,仅仅重新分配给
x并不会改变源序列。您需要将新的x写回列表或数组。当然,下面的答案向您展示了实现目标的各种技巧。