C# 从列表中删除类似字符
我正在制作一个应用程序来生成密码 现在我有一个字符列表,当生成密码的所有选项都为空时,该列表使用以下字符:C# 从列表中删除类似字符,c#,C#,我正在制作一个应用程序来生成密码 现在我有一个字符列表,当生成密码的所有选项都为空时,该列表使用以下字符: chars = "$%#@!*abcdefghijklmnopqrstuvwxyz1234567890?;:ABCDEFGHIJKLMNOPQRSTUVWXYZ^&".ToCharArray(); 接下来我有一个else,它有一些选项,比如标点符号和符号,所以他没有使用标准字符: var listOfCharacters = string.Empty; foreach (v
chars = "$%#@!*abcdefghijklmnopqrstuvwxyz1234567890?;:ABCDEFGHIJKLMNOPQRSTUVWXYZ^&".ToCharArray();
接下来我有一个else,它有一些选项,比如标点符号和符号,所以他没有使用标准字符:
var listOfCharacters = string.Empty;
foreach (var currentOption in options)
{
switch (currentOption)
{
case GenOptions.Punctuation:
listOfCharacters += "&@.#%!*?;:,";
break;
case GenOptions.Symbols:
listOfCharacters += "^$";
break;
default:
break;
}
}
chars = listOfCharacters.ToCharArray();
listOfCharacters.Remove('i'); listOfCharacters.Remove('!');
listOfCharacters.Remove('l'); listOfCharacters.Remove('1');
listOfCharacters.Remove('O'); listOfCharacters.Remove('o');
listOfCharacters.Remove('0'); listOfCharacters.Remove('q');
listOfCharacters.Remove('p'); listOfCharacters.Remove('g');
listOfCharacters.Remove('I');
现在,我想建立一个选项来删除相似的字符,这样几乎是彼此副本的字符就可以像o和0一样。我想对listofcharacter.remove执行此操作,但当我像上面那样使用它时,它会给我一个错误,因为它为null/空。现在,我如何修复此问题?不确定
null/empty
错误消息
您正在尝试使用,它将字符索引作为参数。因此,当您传递'i'
时,它首先转换为int,然后转换为字符串。Remove
尝试删除具有该索引的字符。据我所知,这不是你想要它做的
您可以改为使用:
试试这个:
listOfCharacters.Replace('i',' ');
哪一行给出了“null/empty”消息?如果你在问一个问题,那么它应该是一个注释。这不是一个问题,我要求你使用它。
listOfCharacters.Replace('i',' ');