我已经阅读了几篇关于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);
}
}
答案 0 :(得分: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);
答案 1 :(得分:2)
如果你想用LINQ表示法做,它会是这样的:
var abundantNumbers = (from i in Enumerable.Range(0, 28888)
where i < pta.SumOfDivisors(i)
select i)
.ToList();