用空格初始化列表项
本文关键字:列表 初始化 空格 | 更新日期: 2023-09-27 18:00:45
假设我有一个由包含三个字符串的listitem组成的列表。我添加了一个新的listitem,并尝试从外部源分配所述字符串的值。
如果其中一个项目未分配,则列表项目中的值将保持为null(未分配)。因此,如果我试图将该值分配给页面上的字段,就会出现错误。
我可以为页面上的每个字段检查isNullOrEmpty,但这似乎效率很低。我宁愿在代码绑定中将值初始化为"(空字符串)并发送有效数据。
我可以手动完成:
ClaimPwk emptyNode = new ClaimPwk();
emptyNode.cdeAttachmentControl = "";
emptyNode.cdeRptTransmission = "";
emptyNode.cdeRptType = "";
headerKeys.Add(emptyNode);
但我有一些大的清单项目,为这些项目写会很乏味。
那么,有没有一个命令,或者只是简单地说,一种更简单的方法可以将列表项初始化为空字符串,而不是null?
或者有人有更好的主意吗?
从外部源返回一个初始化的类实例(具有正确的值,如果需要,则为string.Empty),并将其直接添加到集合中。
classCollection.Add(GetClassInstanceFromOutsideSource());
如果您无法从这个外部源返回实例,请编写一个包装方法来调用它,返回实例并将其直接添加到集合中。
我想不出你为什么要在集合中添加一个类的"空"实例,然后更新它。效率低下且不合逻辑。
当您在ClaimPwk
类中定义属性时,您可以将属性设置为默认值(在您的情况下为""
)
例如
Public Class ClaimPwk{
public string cdeAttachmentControl = "";
public string cdeRptTransmission = "";
public string cdeRptType = "";
}
然后,当您创建ClaimPwk
的实例时,您将拥有默认值为""
的属性
可能有点牵强,但您可以使用反射将所有公共可写字符串属性设置为string.Empty
,如以下
emptyNode.GetType()
.GetProperties()
.Where(p => p.CanWrite && p.PropertyType == typeof(string)).ToList()
.ForEach(p => p.SetValue(emptyNode, string.Empty, null));
但最有效的选择是将属性初始化为字符串。类定义中为空。