【发布时间】:2021-12-14 15:48:36
【问题描述】:
我有这个工作 Python 代码,它反转输入的所有字符的大小写并返回输出:
return ''.join(letter.upper() if letter.islower() else (letter.lower() if letter.isupper() else letter) for letter in input())
在这一行中,For 循环位于该行的末尾而不是该行,而不是位于该行之前或上一行。
这在 C# 中是否可行?我有以下函数的工作版本,其中 text1 是输入,但我只能将其压缩为 3 行而不是 1:
string result = string.Empty;
foreach(char letter in text1) result += Char.IsLower(letter) ? letter.ToString().ToUpper() : (Char.IsUpper(letter) ? letter.ToString().ToLower() : letter.ToString());
return result;
我认为这样做可以实现:
return String.Join('', Char.IsLower(letter) ? letter.ToString().ToUpper() : (Char.IsUpper(letter) ? letter.ToString().ToLower() : letter.ToString()) foreach(char letter in text1));
但语法不允许在末尾使用 foreach 生成器。
我对 C# 还很陌生,所以我可能会遗漏一些明显的东西,但我在网上找不到任何关于在这样的语句末尾使用生成器的参考。
【问题讨论】:
标签: python c# python-3.x foreach generator