2016-05-25 9 views
1
var qryLatestInterview = from rows in dt.AsEnumerable()          
         group rows by new 
         { 
          PositionID = rows["msbf_acc_cd"], 
          CandidateID = rows["msbf_fac_tp"] 
         } into grp 
         select grp.First(); 

を持っているとき、私はDateTime列であるmsbf_fac_dtを使用して結果の上にソートしたい、ソートLINQクエリの結果、それは「ファースト()とグループに」

var qryLatestInterview = from rows in dt.AsEnumerable() 
         orderby rows["msbf_fac_dt"] ascending 
         group rows by new 
         { 
          PositionID = rows["msbf_acc_cd"], 
          CandidateID = rows["msbf_fac_tp"], 
          FacilityDate = rows["msbf_fac_dt"] 
         } into grp 
         select grp.First(); 
を変更します

しかし、これは私がここに

答えて

2

を何を行うことができますあなたが最初のレコードを選択する前にグループを注文することができ、並べ替えmsbf_fac_dt列の上ではありません。

var qryLatestInterview = from rows in dt.AsEnumerable() 
         group rows by new 
         { 
          PositionID = rows["msbf_acc_cd"], 
          CandidateID = rows["msbf_fac_tp"], 
         } into grp 
         select grp.OrderBy(x=> x["msbf_fac_dt"]).First(); 
+0

は1つがまた、followig 'を得ることは「System.Data.DataRow」「msbf_fac_dt」とタイプの最初の引数を受け入れていない拡張メソッド「msbf_fac_dt」の定義が含まれていないことをしようとした「System.Data.DataRow」あなたがあなたのコメントを書いていた間、私の答えを編集しました。 – kez

+0

申し訳ありません。 – user3185569

+0

ありがとうthats :) – kez

0

私が正しく理解している場合は、このリストから最新の簡易レコードを取得したい場合は、グループ化して最初のレコードを取得することができます。

dt.AsEnumerable() 
    .GroupBy(row => new 
    { 
     PositionID = rows["msbf_acc_cd"], 
     CandidateID = rows["msbf_fac_tp"] 
    }) 
    .Select(x=>x.OrderByDescending(o=>o["msbf_fac_dt"]>).FirstOrDefault() 
    .ToList(); 
関連する問題