先上一个例子
class Program
{
static IEnumerable<int> TestEnumerable(List<int> l)
{
return l.Select(i => Guid.NewGuid().GetHashCode());
}
static void Main(string[] args)
{
List<int> source = new List<int>() { 1, 2 };
var ll = TestEnumerable(source).ToList();
var ll2 = TestEnumerable(source).ToList();
}
}
请问ll和ll2这两个集合的item是否一样。答案是不一样。
在 LINQ 中,查询变量本身不执行任何操作并且不返回任何数据,只有linq语句执行的时候,才会运行调用linq语句中的代码。这点在做查询的时候一点得注意,特别是对数据库操作的时候。