簡體   English   中英

Linq查詢以獲取來自另一列條件的多個列值的計數

[英]Linq query to get count with multiple column values coming from condition on another column

我有一個表A,如下所示:

表A

ID  ScheduleID     UserCode

1        4              D
2        4              A  
3        1              B   
4        2              D  
5        4              C   
6        6              A    
7        2              B

我想獲取與特定UserCode對應的所有那些scheduleID值的行數。 例如,對於UserCode = D,對應的ScheduleID為4和2。ScheduleID = 2和4的所有行的計數為5。

我試過以下查詢:

int count = A.Count(j => j.ScheduleID.Equals  
   (A.Any(k => k.UserCode == D)));

這給出了運行時錯誤

“無法將類型'System.Boolean'強制轉換為類型'System.Object'

誰能建議這種情況下的准確查詢是什么?

var query = A.Where(p=> p.UserCode == D).Select(x=> x.ScheduleID);
var count = A.Count(p=> query.Contains(p.ScheduleID));

您可以將第二行中的查詢替換為第一行,使其成為一行,但我個人認為這更干凈

這是我獲得相同結果的解決方案:

        int count = (from q1 in A
                     join q2 in A on q1.ScheduleID equals q2.ScheduleID
                     where q2.UserCode == "D"
                     select q1).Count();

暫無
暫無

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

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