LINQ高级面试问题[关闭]


16

我正在为高级程序员准备面试问题中的LINQ部分。LINQ中最有趣的问题包括哪些?又为什么呢?

Answers:


28

您可能要问的一些事情就是这样。

  • 为什么使用var关键字,何时才是获取查询结果的唯一方法?
  • 什么是延期执行?
  • 解释查询表达式语法,流利语法,混合查询。
  • 什么是解释性查询?
  • IQueryableIEnumerable接口的使用。
  • letinto关键字的使用,以及它们如何帮助进行渐进式查询,但仍保持递延执行
  • 什么是表情树?


更新:

为详细的答复看到这个不错的职位奥莱克西


8
好问题。我可能会想举一些代码示例并说“这是做什么的?” 因为我并不完全相信您需要了解和理解Fluent Syntax一词。

嗯,如果他们事先搜索并记住了这些主题,这种方法如何告诉您他们实际上可以执行任何现实的LINQ?
2011年

然后就像BTyler上面所说的那样……您可以用代码示例来补充上述问题。
Shekhar_Pro 2011年

1
这个人写了关于所有这些问题的解决方案的博客:blog4work.com/?tag=/LINQ
Nick Larsen

刚看到帖子,不错的工作:)
Shekhar_Pro 2011年

13

请他们提供一些示例,说明他们有时倾向于使用LINQ的原因,以及为什么这样做(尽管ReSharper兴奋地提出了建议)。


6

您可以开始,但要问支持LINQ需要使用C#3中引入的哪些语言功能。候选人是否了解启用LINQ需要如何使用var关键字以及匿名类型,lambda表达式和扩展方法之类的功能?


出于我自己的好奇,为什么必须使用匿名类型?它们可以方便地用于选择结果,但是您同样可以使用命名属性来定义自己的类,不是吗?
Rup

@Rup | 它只是为了方便和语法糖..您当然可以创建定义良好的类(无论如何,编译器都会在后台为您完成)。但是在使用LINQ查询时,您立即需要一个包含结果的类型...现在看来,继续为每种类型创建类并不起作用,并且如果以后更改结果集,可能会导致编写更多代码并难以维护。
Shekhar_Pro 2011年

那是不对的。linq-to-Sql投影需要匿名类型,例如,仅从表/实体中选择某些列。
joniba

6

如何处理一些编码问题,例如:

  • 然后提供在LINQ中可以做得更好的非LINQ代码,并让他们进行翻译。
  • 给他们一些LINQ,让他们解开并用普通的C#重写(更好的是,找到一个更好或更容易理解非LINQ版本的示例)
  • 让他们解决一些问题,并在有/没有LINQ的情况下进行演示,并让他们解释哪个更好,以及为什么。

教科书的问题很好(例如,为什么要使用var),但要真正弄清它们是否理解,只需让他们编写代码即可。


4

如果您正在寻找可以得到“有趣”答案的问题,您可以问他们为什么他们认为大多数linq示例都使用LHS上的“ var”关键字来分配...没有正确的答案,您可能从他们所说的内容中了解他们的类型。


3

向他们询问表情树。linq如何在数据库服务器上转换为sql linq扩展方法和linq查询的区别

取决于您要从中获得什么。


1
  • 在什么情况下会使用First以及何时使用FirstOrDefault?

  • LINQ解决什么问题?

  • 将查询包装到.ToList时会发生什么?


允许推迟执行。
linquize 2012年

减少使用for / foreach循环以提高可读性的机会
linquize 2012年

0

要求他们使用Func [] rules {}构建一个小的规则引擎。每个规则都必须为真,数组要替换大小写或if语句。

我刚开始使用linq和lambdas,但认为这是解决问题和linq素养的不错方法。

除了此处的更优质建议。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.