私はLinqの同僚と議論しています。ここにコピーします:
同僚:ここで正直に話しましょう。Linq構文はダメです。わかりにくく直感的ではありません。
私:ああ、T-SQLよりも混乱しますか?
同僚:ええ、はい。
私:それは同じ基本的なパーツ、select、where、fromを持っています
同僚:私にとって、Linqはリレーショナル+ OOのろくでなしです。同僚:誤解しないでください。信じられないほど強力ですが、SQLを再利用してオブジェクトコレクションを使用しました。
私は、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
私にとって、これはきれいで読みやすいです(少なくとも他の選択肢よりも簡単です)、あなたの意見は何ですか?