[英]How do I write this in LINQ?
我確定有一些方法可以在Linq中編寫此代碼。 但我是LINQ的新手,不知道怎么做? 這是代碼:
List<IEntityMITARBEITER> leiter = new List<IEntityMITARBEITER>();
foreach (IEntityMITARBEITER mitarbeiter in mit)
{
foreach (IEntityREF_SCHULLUNG refs in refSchullung)
{
if (refs.Id_person == mitarbeiter.Id_mit)
{
leiter.Add(mitarbeiter);
}
}
}
leiter = mit.Where(x => refSchullung.Any(y => y.Id_person == x.Id_mit)).ToList();
(如果同事沒有參加更多課程。)
var selectedMitarbeiter = mit
.Where(m => refSchulung.Any(s => s.Id_person == m.Id_mit));
leiter.AddRange(selectedMitarbeiter.ToList());
為什么要使用LINQ重寫它? 你所做的就是確定:它比LINQ中的可讀性和速度更快
如果你真的想使用LINQ,我可以建議你安裝ReSharper,它會為你轉換它。
http://blogs.jetbrains.com/dotnet/2009/12/resharper-50-preview-loops-2-linq/
在這種情況下,使用Join()
會很有意義:
var joinQuery = mit.Join(refSchullung, x => x.Id_mit, x => x.Id_Person, (x, y) => x);
leiter.AddRange(joinQuery.ToList());
這將匹配鍵匹配的兩個序列中的每個元素,並為每個案例選擇單個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.