Linq,var、list、IEnumerable 和 IQueryable 返回数据有什么区别?

发布于 2024-10-04 01:43:39 字数 207 浏览 5 评论 0原文

我是 Linq 新手,请指导我一些基本的事情。

阅读一些有关 Linq 的文章。有些作者从 Linq 查询中将数据填充到 var 中,有些作者填充自定义类型对象列表,有些作者在 IEnumerable 中填充数据,有些则在 IQuryable 中填充数据。我不明白这 4 个有什么区别,以及在哪种情况下应该使用哪一个。

我想使用 Linq to SQL。我应该用什么?

I am new to Linq please guide me on some basic things.

In read some articles on Linq. Some authers fill data in var from Linq query, some fills list of custom type objects and some fills data in IEnumerable and some do it in IQuryable. I could not get what is difference in these 4 and which one should be used in which situation.

I want to use Linq to SQL. What should I use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝海似她心 2024-10-11 01:43:39

嗯,你永远不能声明一个方法返回var - 它只对局部变量有效。它的基本意思是“编译器,请根据赋值运算符右侧的表达式推断该变量的静态类型”。

通常,如果 LINQ to Objects 查询返回某种序列,则它会返回 IEnumerable,或者对于 First() 之类的内容仅返回单个实例。

如果 LINQ to SQL 或 EF 查询希望在现有查询的基础上构建更多查询选项,并在 SQL 构建过程中对添加的位进行分析,则它们将使用 IQueryable。或者,使用 IEnumerable 意味着任何进一步的处理都在客户端执行。

我建议您不要关注要使用的返回类型,而是阅读 LINQ 的核心概念(以及语言增强本身,如 var) - 这样您就会更好地了解 <为什么存在这些选项,以及它们的不同用例是什么。

Well, you can never declare that a method returns var - it's only valid for local variables. It basically means "compiler, please infer the static type of this variable based on the expression on the right hand side of the assignment operator".

Usually a LINQ to Objects query will return an IEnumerable<T> if it's returning a sequence of some kind, or just a single instance for things like First().

A LINQ to SQL or EF query will use IQueryable<T> if they want further query options to be able to build on the existing query, with the added bits being analyzed as part of the SQL building process. Alternatively, using IEnumerable<T> means any further processing is carried out client-side.

Rather than focusing on what return type to use, I suggest you read up on the core concepts of LINQ (and the language enhancements themselves, like var) - that way you'll get a better feel for why these options exist, and what their different use cases are.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文