C# 如何检查StringBuilder是否为空?
我必须对一个方法进行单元测试,该方法需要一个C# 如何检查StringBuilder是否为空?,c#,conditional-statements,stringbuilder,C#,Conditional Statements,Stringbuilder,我必须对一个方法进行单元测试,该方法需要一个StringBuilder,两个项目,并用两个项目之间发现的差异填充StringBuilder 在我的第一个测试中,我给它两个相同的项,所以我想测试StringBuilder是否为空 没有IsEmpty方法或属性 如何轻松检查此属性?如果您查看,它只有4个属性。其中之一是Length StringBuilder对象的长度由其Char对象的数量定义 您可以使用以下属性: 获取或设置当前StringBuilder对象的长度 另一种可能是使用该方法将其视为字
StringBuilder
,两个项目,并用两个项目之间发现的差异填充StringBuilder
在我的第一个测试中,我给它两个相同的项,所以我想测试StringBuilder
是否为空
没有IsEmpty
方法或属性
如何轻松检查此属性?如果您查看,它只有4个属性。其中之一是Length
StringBuilder对象的长度由其Char对象的数量定义
您可以使用以下属性:
获取或设置当前StringBuilder对象的长度
另一种可能是使用该方法将其视为字符串,并使用ToString
方法将生成器压缩为字符串。您甚至可以获取结果字符串,并将其分配给一个变量,如果发现某些差异,您将使用该变量:
string difference = "";
if (!String.IsNullOrEmpty(difference = sb.ToString()))
{
Console.WriteLine(difference);
}
使用
StringBuilder.Length
属性,这里是
使用此选项,它将工作:
StringBuilder stringbuilder = new StringBuilder();
if(string.isnullorempty(Convert.toString(stringbuilder)))
sb.Length==0
?@LasseV.Karlsen Ow,很简单:/抱歉,我是C#的初学者。事实上intellisense说“获取或设置stringbuilder对象的长度”,再加上构造函数将容量作为参数,以及无法设置现有字符串的长度这一事实,所有这些都使人相信长度可能反映了容量。事实上,这是一个非常不直观的答案。将public bool Empty{get;}=this.Length==0代码>。奇怪的是,他们没有这个想法。@Boiethios没错,我一直想知道为什么他们没有实现这样的东西。对于可枚举项也是如此:我认为这是因为length属性是可写的。因此,您可以限制stringbuilder在调用toString方法时解析为字符串的字符数。所以我甚至不知道什么时候该信任肯斯的财产。这里发布的代码非常好,因为它在stringbuilder@RickerSilva这是一个很好的观点。事实上,情况更糟。如果设置Length
属性,则StringBuilder
将使用0x00
字符填充该属性,直到该点为止。如果添加,则附加字符串将附加到零十六进制字符串。如果设置了Length
属性,则不幸的是string.IsNullOrWhiteSpace(sb.ToString())
或string.IsNullOrEmpty(sb.ToString())
方法也会停止工作
if (mySB.Length > 0)
{
Console.WriteLine("Bang! is not empty!");
}
StringBuilder stringbuilder = new StringBuilder();
if(string.isnullorempty(Convert.toString(stringbuilder)))