2

我已经阅读了几篇关于 Linq 和 Func<> 的文章并理解了简单的示例,但我无法在日常编程中使用它们。我很想知道 LINQ 或 lambda 表达式在哪些情况下有用并且应该使用

对于此代码:我可以使用 Linq 或 lambda 表达式吗

List<int> abundantNumbers = new List<int>();
for (int i = 0; i < 28888; i++)
     {
      if (i < pta.SumOfDivisors(i))
         {
          abundantNumbers.Add(i);
          }
     }
4

2 回答 2

14

是的,您绝对可以在示例中使用 LINQ:

var abundantNumbers = Enumerable.Range(0, 28888)
                                .Where(i => i < pta.SumOfDivisors(i))
                                .ToList();

请注意,重要的是您不只是发布添加到列表的代码 - 您发布的代码显示列表一开始是空的。换句话说,您正在创建一个列表。如果您只是将代码添加到现有列表中,我会使用类似的东西:

var query = Enumerable.Range(0, 28888).Where(i => i < pta.SumOfDivisors(i));
abundantNumbers.AddRange(query);
于 2012-05-03T20:43:23.393 回答
2

如果你想使用 LINQ 表示法,它会是这样的:

var abundantNumbers = (from i in Enumerable.Range(0, 28888)
                       where i < pta.SumOfDivisors(i)
                       select i)
                      .ToList();
于 2012-05-03T21:01:07.513 回答