2010-11-12 57 views
2

我使用LINQ將數據集表到自定義對象:數據錶轉換成對象

var list = (from row in ds.Tables[0].AsEnumerable() 
      select new MyObj 
      { 
      Porp1 = row.Field<string>("field1"), 
      Prop2 = row.Field<string>("field2") 
      }).ToList(); 

如何檢查與特定名稱的列時存在,如果沒有,分配空字符串?

回答

3

類似:

row.Columns.Contains("...") ? row.Field<string>("field1") : string.Empty 

更準確地說:

row.Table.Columns.Contains("...") ? row.Field<string>("field1") : string.Empty 
0

要檢查列中存在,你應該檢查是否列名在DataTable.Columns存在colleciton這樣的:

// Given a datatable named table: 
bool columnExists = table.Columns.Contains("columnname"); 

另外,如果你在.Net 4上,你可以使用支持動態類型來ret如果列存在,則爲列的值,在任何其他情況下爲默認值。我的博客上講述類似的東西,前一陣子:

http://blog.rag.no/post/Update-The-DataTable-meets-dynamic-improved.aspx

http://blog.rag.no/post/Creating-a-monster-The-DataTable-meets-dynamic.aspx