簡體   English   中英

Linq 選擇實體屬性值與另一個列表中任何項目的屬性值匹配的位置

[英]Linq select where entity property value matches value of property of any item in another List

在 C# 中使用 Linq,如何從一種實體類型的對象列表中選擇項目,其中任何對象的屬性值與包含不同實體對象的列表中任何對象的屬性值匹配類型? 我正在尋找使用流暢語法的真實表達式,該表達式執行以下偽代碼的功能(實體 A 和實體 B 不通過鍵鏈接)

MyContext.ListOfEntityA.Where(a => ListOfEntityB.Contains(ListOfEntityB.Property.Value == a.Value))

澄清一下,如果集合包含如下所示的對象:

ListOfEntityA
-------------
EntityA_Object.Property = 1
EntityA_Object.Property = 2

ListOfEntityB
-------------
EntityB_Object.Property = 2

然后表達式應該返回 ListOfEntityA 中的第二項

試試這個,它現在可以工作了。

MyContext.ListOfEntityA.Where(a => ListOfEntityB.Exists(b => b.Property.Value == a.Property.Value));
ListOfEntityA.Where(a => ListOfEntityB.Any(b => b.Property == a.Property))

您可以使用 LINQ 連接表達式連接匹配屬性上的兩個列表,過濾掉所有沒有匹配結果的元素。結果應該是兩個列表中的匹配元素作為 IEnumerable 結果。

ListOfEntityA
.Join(ListOfEntityB, l => l.Property, r => r.Property, (a, b) => new { EntityAObject = a, EntityBObject = b });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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