Я пишу метод расширения Linq, чтобы сделать p455w0rd из строкового ввода.
public static IEnumerable<char> ToPasswordFormat(this IEnumerable<char> source)
{
var enumerator = source.GetEnumerator();
while (enumerator.MoveNext())
{
switch((char)enumerator.Current)
{
case 'a':
yield return '4';
break;
case 'e':
yield return '3';
break;
case 'l':
yield return '7';
break;
case 'i':
yield return '!';
break;
case ' ':
yield return '';
break;
default:
yield return (char)enumerator.Current;
break;
}
}
}
как видите, я хочу удалить пробелы, но когда я использую yield return '';
, я получаю ошибку Empty character literal
.
Что такое ''
и как я могу вернуть yield return ничто?
case ' ': break;
- person George Duckett   schedule 03.04.2013'\0'
. stackoverflow.com/a/3670513/284240 - person Tim Schmelter   schedule 03.04.2013switch
, я предлагаю вам просто построитьDictionary<char, char>
для сопоставления значений; будет намного проще. - person Servy   schedule 03.04.2013