[英]How do I create a LinQ query with an “IN” statement like SQL?
我需要一個與下面執行相同操作的 LinQ 查詢……但我似乎無法弄清楚。 (我正在使用 C#)
SELECT * FROM Groups WHERE Id IN(
SELECT DISTINCT [GroupId] FROM [MyTable].[dbo].[Detail])
不是這個(標記為重復問題)
SELECT * 來自用戶 WHERE User_Rights IN(“Admin”、“User”、“Limited”)
如果它們相同,那么就這樣吧……我當然會以此為答案。
如果 Groups 集合在組中,並且 detail 是詳細的,那么
groups.Where(z => detail.Any(x => x.groupid == z.id));
這將檢查組的每個元素以查看 id 屬性是否與詳細信息集合的任何 groupid 屬性相同。
請務必注意,這可能不是您的用例的最佳解決方案——如果您的組非常大,那么我會考慮將其放入列表並使用包含——這將為您提供 hash 性能。 對於較小規模的組,制作列表的成本將大於性能增益。
var idlist = details.Select(x => x.groupid).ToList();
groups.Where(z => idlist.Contains(z.id));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.