2009-08-26 45 views
6

Tôi muốn tạo ra truy vấn này:có và đếm có điều kiện() trong truy vấn LINQ

select Something, count(Something) as "Num_Of_Times" 
from tbl_results 
group by Something 
having count(Something)>5 

tôi bắt đầu với điều này:

tempResults.GroupBy(dataRow => dataRow.Field<string>("Something")) 
    .Count() //(.......what comes here , to make Count()>5?) 

Trả lời

8
from item in tbl_results 
group item by item.Something into groupedItems 
let count = groupedItems.Count() 
where count > 5 
select new { Something = groupedItems.Key, Num_Of_Times = count }; 

UPDATE: Điều này sẽ cung cấp cho bạn kết quả dưới dạng IQueryable<DataRow>:

DataTable dt= new DataTable(); 
dt.Columns.Add("Something", typeof(int)); 
dt.Columns.Add("Num_Of_Times", typeof(int)); 

var results = (from item in tbl_results 
       group item by item.Something into groupedItems 
       let count = groupedItems.Count() 
       where count > 2 
       select dt.Rows.Add(groupedItems.Key, count)).AsQueryable(); 

(lưu ý rằng nó cũng lấp đầy bảng dt)

+0

Thank you very much, tôi cần kết quả như IQueryable , Có cách nào để tạo ra các 'chọn' kết quả như một IQueryable ? hoặc tôi có cần tạo các hàng thủ công không? – Rodniko

+0

xem câu trả lời cập nhật –

+0

Cảm ơn bạn rất nhiều :) – Rodniko

Các vấn đề liên quan