检查 DataTable 列是否存在以及是否为空

Check DataTable if a column exists and if it's null

环境:.Net Framework 3.5

我有一个 DataTable 可以为数据库中的相同 table 返回可变数量的列,我正在检查列 exists 是否是它 null 如下所示:

这是我将 DataTable 映射到 entity

的时候
Status = dt.Columns["Status"] != null ? row["Status"] == DBNull.Value ? 0 : Convert.ToInt16(row["Status"]) : 0,

这是非常标准的还是我可能遗漏了任何其他情况?其他更简洁的方式?

Doodles 扩展方法让一切变得更好:

public static class DataTableExtensions
{
    public static T GetValueOrDefault<T>(this DataRow row, string columnName)
    {
        return row.GetValueOrDefault<T>(columnName, default(T));
    }

    public static T GetValueOrDefault<T>(this DataRow row, string columnName, T defaultValue)
    {
        return row.Table.Columns[ColumnName] != null && 
               row[columnName] != DbNull.Value && 
               row[columnName] is T ? (T)row[columnName] : defaultValue;
    }
}

用法:

var Status = row.GetValueOrDefault<Int16>("status");

var Status = row.GetValueOrDefault<Int16>("status", -1);