【问题标题】:C# - How to transform a For loop into a Linq expression?C# - 如何将 For 循环转换为 Linq 表达式?
【发布时间】:2012-08-10 11:06:30
【问题描述】:

我有以下循环:

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

转换成 Linq 表达式?

【问题讨论】:

  • @h1ghfive:它为你做的??
  • @h1ghfive:我有 ReSharper,但它没有提供。
  • 我对于“for”循环可能是错误的,但我确信它对于“foreach”循环是正确的

标签: c# linq for-loop


【解决方案1】:
myStringList = myStringList.Select(x => x.ToUpper()).ToList();

【讨论】:

    【解决方案2】:

    使用这个

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

    我最后使用了.ToList(),假设myStringList 是List&lt;string&gt;

    FoodforThought:List 中有一个方法ForEach(),它对每个项目执行这样的操作。

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

    但这不能在这里使用,因为该方法可用于更改项目的属性,但不能用于更改项目本身。

    所以这不会做任何事情

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

    【讨论】:

    • 是的,也谢谢你。我会接受 Darin Dimitrov 的,因为他首先回应,但是 +1。而且,是的,当我第一次尝试使用 ForEach 时,我意识到您不能使用 ForEach 更改列表的项目,但仍然感谢您的解释。
    猜你喜欢
    • 2013-03-05
    • 2012-10-07
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2015-10-06
    相关资源
    最近更新 更多