yield返回空字符文字

hap*_*ore 2 c# linq char yield-return

我正在编写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;
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我想删除空格,但是当我使用yield return '';它时会给我错误Empty character literal.

什么是''如何以及如何返回收益率什么都没有?

nvo*_*igt 13

你不能yield return nothing.解决方案是,如果它是一个空格,则不会产生回报.注释掉那条线,你应该很好.

''毫无意义.编译器会抱怨.没有"没有性格"这样的东西.

  • nul字符是有效字符.它有一个定义的值.它对许多编程语言都有特殊的意义,但它仍然是一个字符."没有字符"不能以"no int"不存在的方式存在,虽然我们经常说"没有钱",当我们的意思是零时:) (2认同)