簡體   English   中英

我如何在LINQ中寫這個?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM