2017-01-31 5 views
2
List<dynamic> homePageDataList = new List<dynamic>();   
DataTable dt = GetData();   
    homePageDataList.Add(new 
{ 
    Vehicle = dt.Rows[0]["vehName"], 
    Lati = dt.Rows[0]["lat"], 
    Long = dt.Rows[0]["lngt"], 


    if(dt.Rows[0]["userType"].ToString()=="2") 
    { 
     TripStatus = dt.Rows[0]["delstatus"].ToString();           
    }         
    Date = dt.Rows[0]["dtTime"], 
}); 

を動的に項目を追加します。私はuserType==2場合の条件とTripStatsを追加します。リスト<dynamic>。ここ

答えて

2

expandoオブジェクトを使用することを検討してください。

List<dynamic> homePageDataList = new List<dynamic>();   
DataTable dt = GetData(); 

dynamic expando = new ExpandoObject(); 
      expando.Vehicle = dt.Rows[0]["vehName"]; 
      expando.Lati =dt.Rows[0]["Lati "]; 
      expando.Long = dt.Rows[0]["Long "]; 
      expando.Date = dt.Rows[0]["Date "]; 

if(dt.Rows[0]["userType"].ToString()=="2") 
    { 
     expando.TripStatus = dt.Rows[0]["delstatus"].ToString();           
    }  

homePageDataList.Add(expando); 
2

あなたは以下のように(インラインif文)Ternary Operatorを使用することができます:あなたは、動的にプロパティを追加したい場合は

TripStatus = dt.Rows[0]["userType"].ToString()=="2" ? dt.Rows[0]["delstatus"].ToString() : "", 
+0

貴重なご回答ありがとうございます。 しかし、Tripstatusを表示するには、usertype == 2でなければなりません。他の賢明な私はTripStatusが欲しくない。 –

+0

@RakeshTailor usertype!= 2の場合は空の文字列ではなく** null **に設定できます。 –

関連する問題