我已声明列表如下
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/