c# - 将空值分配给列表中的属性

标签 c# list

我已声明列表如下

 List<myList> mylist= new List<myList>();

这是 myList 的类

internal class myList
{
    public int ID { set; get; }
    public string Name { set; get; }
}

现在,当在列表中添加记录时,“名称”字段中几乎没有来自数据库的空值。

mylist.Add(new myList{ ID= (int) item["ID"], Name = item["Name"].ToString()});

我知道我可以添加条件来检查

var Name ="";
if (item["Name"] !=null) {
      Name = item["Name"]
}

然后在将记录添加到列表时使用变量 Name

mylist.Add(new myList{ ID= (int) item["ID"], Name = Name});

还有其他更好的方法吗?

最佳答案

我怀疑您正在寻找 null-coalescing operator如果现有值是空引用,则在此处提供默认值。

// Names changed to look more conventional
people.Add(new Person { Id = (int) item["ID"], Name = (string) item["Name"] ?? "" });

请注意这里使用的是强制转换而不是调用 ToString() - 如果您认为值的执行时类型将是字符串引用,则强制转换是一个更清晰的指示的,它证实了这种期望;如果您出于某种原因最终得到(比如说)DateTime 值,则转换将抛出异常,而不是通过您的系统传播错误数据。

关于c# - 将空值分配给列表中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355592/

相关文章:

C# 正则表达式。大括号{}和 mod(%) 字符内的所有内容

c# - 拖放在 Windows 10 Mobile 上的 UWP 应用程序中不起作用

c# - 如何在 Windows 10 通用应用程序开发中使用硬件后退按钮将导航限制到某些页面?

python - 两个 python 列表之间的部分匹配,一个列表完全存在于另一个列表中,在 Python 中几乎没有附加字符

list - 如何在Dart中以空对象结尾对List <File>进行排序

c# - IdentityServer4 with ASP.NET Core 2.1 Identity - 加载外部登录信息时出错

c# - JavaScript 和 Windows 窗体之间的交互

r - 数据框列表第一列到行名

python - 遍历包含 8526 个项目的列表,获取索引超出范围错误

python - 使用列表检查按钮状态(tkinter python)