数据到对象转换

时间:2010-11-12 11:34:19

标签: c#

我正在使用linq将数据集表转换为自定义对象:

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

如何检查具有特定名称的列是否存在,如果不存在,则分配空字符串?

2 个答案:

答案 0 :(得分:3)

类似的东西:

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

更准确地说:

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

答案 1 :(得分:0)

要检查列是否存在,您应该检查DataTable.Columns集合中是否存在列名,如下所示:

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

或者,如果您使用.Net 4,则可以使用对动态类型的支持,以在列存在时返回列的值,并在任何其他情况下返回默认值。我刚才在博客上写过类似的内容:

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