C# - 如何将 For 循环转换为 Linq 表达式?

3

I have the following loop:

for (var i = 0; i < myStringList.Count; i++)
{
    myStringList[i] = myStringList[i].ToUpper();
}

如何将其转换为Linq表达式?


@h1ghfive:它会自动为你完成这个操作吗? - user541686
@h1ghfive:我有ReSharper,但它没有提供。 - user1592916
我可能对 'for' 循环有误,但我确定它适用于 'foreach' 循环。 - h1ghfive
2个回答

5
使用这个
myStringList = myStringList.Select(x => x.ToUpper()).ToList();

我使用了.ToList(),假设myStringList是一个List<string>

思考:List中有一个方法ForEach(),它可以对每个项执行以下操作。

myStringList.ForEach(x => x.Foo = Bar);

但是这种方法不能用于此处,因为该方法可以用于更改项目的属性,但不能用于更改项目本身。

因此,这将不起作用。

    myStringList.ForEach(x => x = x.ToUpper());

是的,也谢谢你。我会接受 Darin Dimitrov 的答案,因为他先回答了,但是加一赞。是的,在我第一次尝试时,我已经意识到在 ForEach 中无法更改列表项,不过还是感谢你的解释。 - user1592916

4
myStringList = myStringList.Select(x => x.ToUpper()).ToList();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接