我有这段代码。
string ED= collection["ED"].Replace(string.Empty,"1/1/2011").Split(',').ToString();
当我这样做时,我收到了这个错误。
String cannot be of zero length.
Parameter name: oldValue
这是我在这里做错了吗?
感谢
答案 0 :(得分:2)
Replace方法的第一个参数不能是空字符串
See the exceptions section of this msdn article.
如果不了解您想要实现的目标,就很难进一步提供帮助。如果Replace方法成功,那么Split方法会将字符串转换为数组,然后ToString方法将返回“System.String []”。我怀疑这是你正在寻找的结果。
答案 1 :(得分:2)
oldValue是Replace()
的第一个参数,所以我猜你不能将string.Empty
传递给那个
答案 2 :(得分:1)
string.Replace
用第二个参数替换第一个参数的所有insatances。因此"abcabcabc".Replace("a", "z")
变为"zbczbczbc"
。
替换空字符串的所有实例将导致无限循环的替换。 "".Replace(string.Empty, "a")
用“a”替换空字符串,但是在a之前和之后仍然有一个空字符串,需要替换,所以我们有“aaa”,但是在开头和结尾仍然有一个空字符串字符串,以及a之间,所以取代那些我们得到“aaaaaaa”等。
如果值为空,您实际上是指使用默认日期吗?在这种情况下,你想做类似的事情:
var temp = collection["ED"];
if (string.IsNullOrEmpty(temp)) {
temp = "1/1/2011";
}
string ED = temp.Split(',').ToString();