如何避免bool属性自动添加到列表元素(c#)
本文关键字:列表元素 添加 何避免 bool 属性 | 更新日期: 2023-09-27 18:05:37
我有以下c#代码:
public class Res1
{
public string Name1 { get; set; }
public string Name2 { get; set; }
public bool NameDef { get; set; }
}
...
...
List<Res1> list1 = new List<Res1> { };
list1.Add(new Res1 { Name1 = "testName" });
list1的结果将是:
[{"Name1":"testName","NameDef":false}]
但我只希望列表条目包含Name1,如果namdef未设置,如Name2 (string)
如何避免bool属性自动添加到列表元素?
您不能使用bool
数据类型实现这一点。它有一个值(默认为false)。对于bool?
数据类型(可空布尔),它应该工作。
public class Res1
{
public string Name1 { get; set; }
public string Name2 { get; set; }
public bool? NameDef { get; set; }
}
通过在它的类型后添加?
使您的bool可为空:
public class Res1
{
public string Name1 { get; set; }
public string Name2 { get; set; }
public bool? NameDef { get; set; } //mind the ?
}
...
...
List<Res1> list1 = new List<Res1> { };
list1.Add(new Res1 { Name1 = "testName" });
默认情况下,bool
总是必须保存true
或false
,就像int
只能保存数字一样-而不是null。通过在非空类型后添加?
,可以使其为空。它是Nullable<bool>
的简写。这样可以有效地使它们为空。
MSDN有一些关于可空类型的进一步阅读