gpt4 book ai didi

linq - Enumerable.ToDictionary 是否只检索它需要的内容?

转载 作者:行者123 更新时间:2023-12-04 23:10:26 32 4
gpt4 key购买 nike

我正在使用 Enumerable.ToDictionary 从 linq 调用中创建一个字典:

return (from term in dataContext.Terms
where term.Name.StartsWith(text)
select term).ToDictionary(t => t.TermID, t => t.Name);

该调用会获取每个术语的全部内容,还是仅从我的数据提供程序中检索 TermID 和 Name 字段?换句话说,如果我改为这样写,我会节省自己的数据库流量吗:
return (from term in dataContext.Terms
where term.Name.StartsWith(text)
select new { term.TermID, term.Name }).ToDictionary(t => t.TermID, t => t.Name);

最佳答案

Enumerable.ToDictionary 适用于 IEnumerable 对象。语句的第一部分“(from ... select term”) 是一个 IQueryable 对象。 Queryable 将查看表达式并构建 SQL 语句。然后它会将其转换为 IEnumerable 以传递给 ToDictionary()。

换句话说,是的,您的第二个版本会更有效率。

关于linq - Enumerable.ToDictionary 是否只检索它需要的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2078985/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com