linq findlast和哪里有区别

时间:2012-01-11 13:51:53

标签: linq

我想知道在数据库命中方面执行这些操作有什么区别?由于ToList()扩展方法,第一个和第二个查询的结果是什么

List widgetdet = (from gid in GetWidgetMetas(SidebarDetailsId)
                 select gid).ToList();

var str=(widgetdet.FindLast(p => p.vcr_key == "ShowThumbnail").vcr_value // (1)

var str=widgetdet.Where(p => p.vcr_key == "txttitle").First().vcr_value  // (2)

1 个答案:

答案 0 :(得分:1)

我不能肯定,因为我看不到GetWidgetMetas()正在做什么,但假设它返回了一个IQueryable<&gt ;,那么当.ToList()FindLast时,数据库就会被点击调用。

Wherewidgetdet方法不会搜索数据库,因为此时{{1}}是内存中的完整列表。