ฉันกำลังพูดคุยกับเพื่อนร่วมงานใน Linq ฉันจะคัดลอกที่นี่:
ผู้ร่วมงาน: ขอซื่อสัตย์ที่นี่ ไวยากรณ์ Linq แย่มาก มันสับสนและไม่ง่าย
ฉัน: โอ้มาเลยสับสนมากกว่า T-SQL เหรอ?
เพื่อนร่วมงาน: เอ่อใช่
ฉัน: มันมีส่วนพื้นฐานเดียวกันเลือกสถานที่และจาก
ผู้ร่วมงาน: Linq สำหรับฉันคือการกำจัดไอเท็มเชิงสัมพันธ์ + OO ผู้ร่วมงาน: อย่าเข้าใจฉันผิด - มันมีประสิทธิภาพอย่างไม่น่าเชื่อ แต่พวกเขาเรียกคืน SQL เพื่อใช้การเก็บรวบรวมวัตถุ agains
ฉันเห็นว่าการใช้ Linq + Lamda นั้นทรงพลังมาก (เขาเห็นด้วย) และทำให้อ่านรหัสได้ง่ายขึ้น (เขาไม่เห็นด้วยกับจุดนั้น):
pickFiles = from f in pickFolder.GetFiles("*.txt")
where ValidAuditFileName.IsMatch(f.Name)
select f;
หรือ
var existing = from s in ActiveRecordLinq.AsQueryable<ScannedEntity>()
where s.FileName == f.FullName && s.DocumentType != "Unknown"
select s;
หรือ (รหัส VB ที่นี่)
Dim notVerified = From image In images.AsParallel
Group Join verifyFile In verifyFolder.GetFiles("*.vfy").AsParallel.Where(
Function(v) v.Length > 0
).AsParallel
On image.Name.Replace(image.Extension, ".vfy") Equals verifyFile.Name
Into verifyList = Group
From verify In verifyList.DefaultIfEmpty
Where verify Is Nothing
Select verify
สำหรับฉันนี่สะอาดและง่าย (อย่างน้อยง่ายกว่าทางเลือก) ในการอ่านคุณมีความคิดเห็นอย่างไรกับมัน?