如何用默认日期替换字符串?

时间:2011-04-14 16:06:22

标签: c#

我有这段代码。

  string ED= collection["ED"].Replace(string.Empty,"1/1/2011").Split(',').ToString();

当我这样做时,我收到了这个错误。

String cannot be of zero length.
Parameter name: oldValue

这是我在这里做错了吗?

感谢

3 个答案:

答案 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();