Câu hỏi phỏng vấn cao cấp LINQ [đóng]


16

Tôi đang chuẩn bị một phần LINQ trong các câu hỏi phỏng vấn cho các lập trình viên cao cấp. Các câu hỏi thú vị nhất trong LINQ bao gồm những gì? Và tại sao?

Câu trả lời:


28

Một số điều bạn có thể hỏi sẽ như thế nào.

  • Tại sao vartừ khóa được sử dụng và khi đó là cách duy nhất để có kết quả truy vấn?
  • Thực thi hoãn lại là gì?
  • Giải thích cú pháp Biểu thức truy vấn, Cú pháp trôi chảy, Truy vấn hỗn hợp.
  • Truy vấn giải thích là gì?
  • Sử dụng IQueryableIEnumerablegiao diện.
  • Sử dụng letintotừ khóa và cách chúng giúp thực hiện các truy vấn Tiến bộ nhưng vẫn giữ thực thi Trì hoãn
  • Cây biểu hiện là gì?


Cập nhật:

Để biết câu trả lời chi tiết, hãy xem bài viết hay này của Oleksii


8
Những câu hỏi hay Tôi có thể bị cám dỗ để đưa ra các ví dụ mã và nói "cái này làm gì?" vì tôi không hoàn toàn tin rằng bạn cần biết thuật ngữ Fluent Syntax là gì để sử dụng và hiểu nó.

hmmm, và nếu họ Google những chủ đề đó trước khi ghi nhớ và ghi nhớ nó, làm thế nào để phương pháp này cho bạn biết rằng họ thực sự có thể thực hiện bất kỳ LINQ thế giới thực nào?
Darknight

sau đó như BTyler đã nói ở trên ... bạn có thể bổ sung các câu hỏi trên bằng các mẫu mã.
Shekhar_Pro

1
Anh chàng này viết blog về các giải pháp cho tất cả những câu hỏi sau: blog4work.com/?tag=/LINEQ
Nick Larsen

Chỉ cần xem bài đăng, công việc tốt đẹp :)
Shekhar_Pro

13

Yêu cầu họ đưa ra ví dụ về thời gian họ có xu hướng không sử dụng LINQ và tại sao, mặc dù điều đó là có thể (và ReSharper hào hứng gợi ý điều đó).


6

Bạn có thể bắt đầu nhưng hỏi những tính năng ngôn ngữ nào được giới thiệu trong C # 3 là cần thiết để hỗ trợ LINQ. Ứng viên có hiểu các tính năng như từ khóa var cũng như các loại ẩn danh, biểu thức lambda và phương thức mở rộng là cần thiết để kích hoạt LINQ không?


Đối với sự tò mò của riêng tôi tại sao các loại ẩn danh cần thiết? Chúng có thể được sử dụng cho các kết quả được chọn như một sự thuận tiện nhưng bạn cũng có thể xác định rõ các lớp của riêng mình với các thuộc tính được đặt tên phải không?
Rup

@Rup | Nó chỉ là một vấn đề tiện lợi và một cú pháp cú pháp .. tất nhiên bạn có thể tạo ra các lớp được xác định rõ (dù sao trình biên dịch cũng làm điều đó cho bạn đằng sau hậu trường). nhưng trong khi sử dụng truy vấn LINQ, bạn ngay lập tức cần một loại để chứa kết quả ... bây giờ điều này có vẻ không hiệu quả để tiếp tục tạo các lớp cho từng loại và điều này có thể dẫn đến nhiều mã hơn và khó duy trì nếu bộ kết quả thay đổi sau đó.
Shekhar_Pro

Điều đó không đúng. Các loại ẩn danh được yêu cầu cho các phép chiếu linq-to-Sql, ví dụ để chỉ chọn các cột nhất định từ một bảng / thực thể.
joniba

6

Làm thế nào về một số câu hỏi mã hóa, như:

  • Đưa ra mã không phải LINQ sẽ được thực hiện tốt hơn trong LINQ và yêu cầu họ dịch nó.
  • Cung cấp cho họ một số LINQ và yêu cầu họ làm sáng tỏ và viết lại bằng C # đơn giản (tốt hơn nữa, tìm một ví dụ trong đó phiên bản không phải LINQ tốt hơn hoặc dễ hiểu hơn)
  • Yêu cầu họ giải quyết một số vấn đề và hiển thị có / không có LINQ và yêu cầu họ giải thích cái nào tốt hơn và tại sao.

Các câu hỏi trong sách giáo khoa là tốt (ví dụ tại sao sử dụng var), nhưng để thực sự tìm hiểu xem họ có hiểu không, hãy bắt họ viết mã.


4

Nếu bạn đang tìm kiếm một câu hỏi mà bạn nhận được câu trả lời "thú vị", bạn có thể hỏi họ tại sao họ nghĩ rằng hầu hết các ví dụ linq chỉ định sử dụng từ khóa "var" trên LHS ... không có câu trả lời đúng và bạn có thể có thể có được một số hiểu biết về loại người họ từ những gì họ nói.


3

Hỏi họ về cây biểu hiện. Cách linq biến thành sql trên máy chủ cơ sở dữ liệu, sự khác biệt giữa các phương thức mở rộng linq và truy vấn linq

Phụ thuộc vào những gì bạn đang cố gắng để thoát khỏi chúng.


1
  • tình huống nào bạn sẽ sử dụng Đầu tiên và khi nào nên sử dụng FirstOrDefault?

  • LINQ giải quyết vấn đề gì?

  • Điều gì xảy ra khi bạn bọc truy vấn trong .ToList?


cho phép thực hiện hoãn lại.
xếp hàng

giảm cơ hội sử dụng vòng lặp for / foreach để cải thiện khả năng đọc
nối tiếp

0

Yêu cầu họ xây dựng một công cụ quy tắc nhỏ, sử dụng quy tắc Func [] {}. Mỗi quy tắc phải đúng, trường hợp thay thế mảng hoặc câu lệnh if.

Tôi mới chỉ bắt đầu với linq và lambdas nhưng hình đây là một bài kiểm tra tốt về giải quyết vấn đề và hiểu biết về linq.

Ngoài những gợi ý đủ điều kiện hơn ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.