คำถามสัมภาษณ์ LINQ อาวุโส [ปิด]


16

ฉันกำลังเตรียมส่วน LINQ ในคำถามสัมภาษณ์สำหรับโปรแกรมเมอร์อาวุโส คำถามที่น่าสนใจที่สุดใน LINQ ที่จะรวมคืออะไร และทำไม?

คำตอบ:


28

บางสิ่งที่คุณสามารถถามได้จะเป็นอย่างไร

  • เหตุใดจึงใช้varคำหลักและเมื่อเป็นวิธีเดียวที่จะได้รับผลการสืบค้น
  • การดำเนินการรอการตัดบัญชีคืออะไร
  • อธิบายไวยากรณ์ Query Expression, ไวยากรณ์ Fluent, Mixed Queries
  • ข้อความค้นหาตีความคืออะไร
  • การใช้IQueryableและIEnumerableอินเตอร์เฟส
  • การใช้let และintoคำหลักและวิธีที่พวกเขาช่วยในการทำแบบสอบถามแบบก้าวหน้า แต่ยังคงดำเนินการรอการตัดบัญชี
  • ต้นไม้นิพจน์คืออะไร


ปรับปรุง:

สำหรับคำตอบโดยละเอียดโปรดดูโพสต์นี้โดยOleksii


8
สุดยอดคำถาม ฉันอาจถูกล่อลวงให้ยกตัวอย่างรหัสและพูดว่า "สิ่งนี้ทำอะไร?" เนื่องจากฉันไม่มั่นใจอย่างสมบูรณ์ว่าคุณจำเป็นต้องรู้ว่าคำศัพท์ Fluent Syntax คืออะไรที่จะใช้และเข้าใจ

อืมและถ้าพวกเขา Google หัวข้อเหล่านั้นก่อนที่จะถึงมือและจดจำวิธีการนี้จะบอกคุณว่าพวกเขาสามารถทำ LINQ ในโลกแห่งความเป็นจริงได้อย่างไร
Darknight

ดังนั้นตามที่ BTyler ได้กล่าวไว้ข้างต้น ... คุณสามารถเติมคำถามข้างต้นด้วยตัวอย่างโค้ดได้
Shekhar_Pro

1
ผู้ชายคนนี้ blogged เกี่ยวกับการแก้ปัญหาของคำถามเหล่านี้ทั้งหมด: blog4work.com/?tag=/LINQ
Nick Larsen

เพิ่งเห็นโพสต์ทำงานได้ดี :)
Shekhar_Pro

13

ขอให้พวกเขายกตัวอย่างเวลาที่พวกเขามักจะไม่ใช้ LINQ และทำไมถึงแม้ว่ามันจะเป็นไปได้ (และ ReSharper แนะนำมันอย่างตื่นเต้น)


6

คุณสามารถเริ่มต้นได้ แต่ถามว่าต้องใช้ฟีเจอร์ภาษาใดบ้างใน C # 3 เพื่อรองรับ LINQ ผู้สมัครเข้าใจว่าคุณสมบัติเช่นคำหลัก var รวมถึงประเภทที่ไม่ระบุชื่อการแสดงออกแลมบ์ดาและวิธีการขยายจำเป็นต้องเปิดใช้งาน LINQ หรือไม่


สำหรับความอยากรู้อยากเห็นของฉันทำไมประเภทไม่ระบุชื่อจำเป็น? สามารถใช้เพื่อผลลัพธ์ที่เลือกเพื่อความสะดวก แต่คุณสามารถกำหนดคลาสของคุณเองด้วยคุณสมบัติที่มีชื่อไม่ได้ใช่หรือไม่
รูปี

@Rup | มันเป็นแค่เรื่องของความสะดวกสบายและน้ำตาลซินแทคติค .. คุณสามารถสร้างคลาสเรียนที่กำหนดอย่างดีได้ (แน่นอนว่าคอมไพเลอร์ทำสิ่งนั้นเพื่อคุณเบื้องหลัง) แต่ในขณะที่ใช้การสืบค้น LINQ คุณต้องมีประเภทเพื่อให้ได้ผลลัพธ์ในทันที ... ตอนนี้มันไม่ได้ผลในการสร้างคลาสสำหรับแต่ละประเภทและอาจนำไปสู่รหัสเพิ่มเติมและยากที่จะรักษาถ้าชุดผลลัพธ์เปลี่ยนแปลงในภายหลัง
Shekhar_Pro

ไม่ถูกต้อง ประเภทที่ไม่ระบุชื่อเป็นสิ่งจำเป็นสำหรับการประมาณการ linq-to-Sql เช่นเพื่อเลือกเฉพาะคอลัมน์บางคอลัมน์จากตาราง / เอนทิตี
joniba

6

คำถามเกี่ยวกับการเขียนรหัสเช่น:

  • ให้รหัสที่ไม่ใช่ LINQ ซึ่งจะทำได้ดีกว่าใน LINQ และให้พวกเขาแปล
  • ให้ LINQ กับพวกเขาเพื่อให้พวกเขาคลี่คลายและเขียนซ้ำใน C # ธรรมดา (ดีกว่าหาตัวอย่างที่ไม่ใช่รุ่น LINQ ดีกว่าหรือเข้าใจง่ายกว่า)
  • ขอให้พวกเขาแก้ปัญหาและแสดงด้วย / ไม่ใช้ LINQ และให้พวกเขาอธิบายว่าอะไรดีกว่าและทำไม

คำถามในตำราเรียนนั้นใช้ได้ดี (เช่นทำไมต้องใช้var) แต่หากจะเข้าใจว่าพวกเขาเข้าใจจริง ๆ เพียงแค่ให้พวกเขาเขียนโค้ด


4

หากคุณกำลังมองหาคำถามที่คุณจะได้รับคำตอบ "น่าสนใจ" คุณสามารถถามพวกเขาว่าทำไมพวกเขาคิดว่าตัวอย่าง linq ส่วนใหญ่กำหนดโดยใช้คำหลัก "var" ใน LHS ... ไม่มีคำตอบที่ถูกต้องและคุณอาจจะทำได้ ทำความเข้าใจกับประเภทของบุคคลที่มาจากสิ่งที่พวกเขาพูด


3

ถามพวกเขาเกี่ยวกับต้นไม้แสดงออก วิธีที่ linq แปลงเป็น sql บนเซิร์ฟเวอร์ฐานข้อมูลแตกต่างระหว่างวิธีการขยาย linq และการสอบถามของ linq

ขึ้นอยู่กับสิ่งที่คุณพยายามที่จะออกไปจากพวกเขา


1
  • สถานการณ์ใดบ้างที่คุณจะใช้ First และเมื่อจะใช้ FirstOrDefault

  • LINQ แก้ปัญหาอะไรได้บ้าง?

  • จะเกิดอะไรขึ้นเมื่อคุณใส่คำค้นลงในรายการ.


อนุญาตการดำเนินการรอการตัดบัญชี
linquize

ลดโอกาสในการใช้สำหรับ / foreach loop เพื่อปรับปรุงการอ่าน
linquize

0

ขอให้พวกเขาสร้างเอ็นจินกฎขนาดเล็กโดยใช้ Func [] rules {} แต่ละกฎจะต้องเป็นจริงอาร์เรย์จะเปลี่ยนเคสหรือถ้าเป็นคำสั่ง

ฉันเพิ่งเริ่มต้นกับ linq และ lambdas แต่รูปนี้เป็นการทดสอบที่ดีของการแก้ปัญหาและการรู้หนังสือ linq

นอกจากคำแนะนำที่มีคุณสมบัติเพิ่มเติมได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.