2011-08-03 4 views
0

は、私は、次のクラスがあります。Linqを使って、コレクションから別の具体的なクラスに情報を選択する方法は?

public class EntityJESummary 
{ 
    public int JEGroupingId { get; set; } 
    public int PartnershipId { get; set; } 
    public int JEId { get; set; } 
    public DateTime BookingDate { get; set; } 
    public DateTime EffectiveDate { get; set; } 
    public bool Allocated { get; set; } 
    public int JEEstate { get; set; } 
    public float Debit { get; set; } 
    public float Credit { get; set; } 
    public string JEComments { get; set; } 

    public EntityJESummary() 
    { 

    } 
} 

をそしてここで私はソースからでDataRowを除外するためにLINQのを使用しています。私はこの新しいホルダー型クラスにこのデータソースの情報を収めようとしています。

提案がありますか?

_dttMasterViewTransaction = dtsTransaction.Tables["tblTransaction"]; 

var datos = _dttMasterViewTransaction.AsEnumerable() 
     .Where(r => r["JEID"] == FundsID) 
     .Select(new EntityJESummary ??? 

私はr ["foo"]を使用していますが、私は各DataRowからデータを取得しています。特定の行を取得してホルダークラスの特定のプロパティに合わせる必要があります。

また、データテーブルには単一のJEldの行が多数ある可能性があるので、各データローから各デビットを取得し、それをfloatデビットプロパティに合計したいと考えています。

ご意見をいただければ幸いです。 :)あなたはWhere句で何をしたかに

答えて

2

テストされていないが、同様のものを試してください:

var datos = _dttMasterViewTransaction.AsEnumerable() 
.Where(r => r["JEID"] == FundsID) 
.Select(r => new EntityJESummary { 
     JEGroupingId = r["JEGroupingId"], 
     PartnershipId = r["PartnershipId"], 
     ..... 
    }); 
0

あなたはObject Initalizersを利用することができます。

_dttMasterViewTransaction = dtsTransaction.Tables["tblTransaction"]; 

var datos = _dttMasterViewTransaction.AsEnumerable() 
    .Where(r => r["JEID"] == FundsID).Select(r => 
     new EntityJESummary() { 
      JEGroupingId = r["JEID"], 
      PartnershipId = r["PartnershipId"] 
     }; 
関連する問題