2015-01-13 22 views
0

下面是一個示例表,其中我要提取與最高優先級的記錄中,對應於每對ID和代碼,如下所示:如何通過在多個列上使用組與最大功能

下面是我的做法切中要害:

var max = from item in items 
      group item by new {item.code, item.id} into r 
      select new MyObjectType(r.Select(q => q.code), 
            r.Select(q => q.id), 
            r.Max(q => q.priority)); 

但結果是空...

任何想法來解決這個問題?

編輯:

下面是一個簡單的例子:

(code,id,priority) 

(1,10,100) 
(1,10,200) 
(1,11,300) 
(1,11,400) 
(2,12,500) 
(2,12,600) 
(2,13,700) 
(2,13,800) 

和查詢的結果應該是:

(1,10,200) 
(1,11,400) 
(2,12,600) 
(2,13,800) 
+0

你能告訴什麼是數據意味着項目集合 –

+0

@EhsanSajjad:請檢查更新 – Roboticist

+0

@main國王檢查我的職務將有助於 –

回答

2

類使公共屬性和這樣做:

var max = from item in items 
      group item by new {item.code, item.id} into r 
      select new MyObjectType 
       { 
        Code = r.Key.code, 
        Id = r.Key.id, 
        MaxValue = r.Max(q => q.priority) 
       }; 

個你的類應該是這樣的:

public class MyObjectType 
{ 
    public int Code { get; set; } 
    public int Id { get ; set; } 
    public int MaxValue { get; set; } 
} 
+0

這是照顧,謝謝...你的意思是在沒有輸出的唯一原因是缺乏填充引用的類的對象領域的?!... – Roboticist

+0

你在構造函數傳遞他們,你沒有表現出類的實現,你怎麼做,但通常這方式被使用 –