不寻常的字符串错误

时间:2009-06-07 07:31:38

标签: c# string

我正在使用this answer慷慨给我的一些示例代码,当我输入一个长字符串来匹配它时,它会在某些时候与IndexOutOfRangeException崩溃。奇怪的是,当我检查字符串时,它似乎设置为“System.Char []”。为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:3)

我强烈怀疑你所拥有的地方:

char[] chars = ...;
string myString = chars.ToString();

而不是

char[] chars = ...;
string myString = new string(chars);

答案 1 :(得分:2)

此代码:

    var mutated = member.Str.ToCharArray();
    Convert.ToChar((member.Str[ipos] + delta)%123).ToString().CopyTo(0, mutated, ipos, 1);
    member.Str = mutated.ToString();

应该像乔恩建议的那样:

    var mutated = member.Str.ToCharArray();
    Convert.ToChar((member.Str[ipos] + delta)%123).ToString().CopyTo(0, mutated, ipos, 1);
    member.Str = new string(mutated);