如果一个方法在linq查询中,它会被多次调用吗?

时间:2015-08-06 00:37:57

标签: c# performance linq

如果一个方法在linq查询中,它会被多次调用吗?我无法测试这个,因为我没有IDE。我正在学习linq,我使用在线c#编译器来运行程序。

var List<Customer> CustomerList = (From c in GetCustomerList()
                                  Where c.Id > 1
                                  Select c).ToList()

由于GetCustomerList方法在linq语句中,上面的代码是否会导致性能瓶颈?

1 个答案:

答案 0 :(得分:1)

这是一个体面的问题,但你在这里很好。

LINQ查询语法被转换为方法调用。在你的情况下,

var List<Customer> CustomerList = GetCustomerList()
    .Where(c => c.Id > 1)
    .ToList();

如果您对此有疑问,请在Console.WriteLine内添加对GetCustomerList()的调用,或查看source以获取LINQ。