• LINQ延迟查询的例子


     1             //linq延迟查询。两次查询结果不同
     2             List<string> l = new List<string>() { "aaa", "bbb", "ccc" };
     3             var query = l.Select(lstr => new { Name = lstr.ToString() });   //延迟查询,此时还未真正查询产生query
     4             foreach (var item in query) //查询真正开始
     5             {
     6                 Console.WriteLine(item);
     7             }
     8             Console.WriteLine();
     9 
    10             l.Add("ddd");
    11             foreach (var item in query) //查询再次开始,重新查询list
    12             {
    13                 Console.WriteLine(item);
    14             }        

    第一次输出:

    aaa

    bbb

    ccc

    第二次输出

    aaa

    bbb

    ccc

    ddd

     1            //ToList()立即查询,并产生query
     2             List<string> l = new List<string>() { "aaa", "bbb", "cccccc" };
     3             var query = l.Select(lstr => new { Name = lstr.ToString() }).ToList();  //立即查询,此时还未真正查询产生query
     4             foreach (var item in query) //只是迭代query,不再查询
     5             {
     6                 Console.WriteLine(item);
     7             }
     8             Console.WriteLine();
     9             l.Add("ddd");
    10             foreach (var item in query) //只是迭代query,不再查询
    11             {
    12                 Console.WriteLine(item);
    13             }

    两次都只输出:

    aaa

    bbb

    ccc

    而ddd不输出,因为只是迭代query,不是重新查询list

  • 相关阅读:
    树的直径
    POJ3264 Balanced Lineup
    [mock]10月11日
    POJ1062 昂贵的聘礼
    POJ3295 Tautology
    [topcoder]TopographicalImage
    POJ1753 Flip Game
    [leetcode]Copy List with Random Pointer
    [leetcode]Candy
    [leetcode]Gas Station
  • 原文地址:https://www.cnblogs.com/nlh774/p/3489664.html
Copyright © 2020-2023  润新知