You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#能否像Python一样在return语句末尾使用生成器实现字符串大小写反转?

实现方案

C#完全可以实现类似Python的单行写法,对应Python生成器表达式的是C#的LINQ投影操作(Select方法),无需多行循环。

正确单行实现代码

return string.Concat(text1.Select(c => char.IsLower(c) ? char.ToUpper(c) : char.IsUpper(c) ? char.ToLower(c) : c));

如果追求更高性能,也可以用new string写法:

return new string(text1.Select(c => char.IsLower(c) ? char.ToUpper(c) : char.IsUpper(c) ? char.ToLower(c) : c).ToArray());

语法说明

  • 你之前的写法报错,是因为C#不支持直接内联foreach作为生成器,需要用LINQ的Select方法实现集合元素的逐位转换,逻辑和Python生成器表达式完全等价
  • 上述代码直接使用char类型的ToUpper/ToLower方法,无需转字符串操作,简化代码的同时提升了执行效率
  • string.Concat可以直接接收IEnumerable<char>类型的序列完成拼接,不需要额外指定分隔符,和Python的''.join()效果完全一致
  • 如果编译提示找不到Select方法,只需在代码文件顶部引入命名空间using System.Linq;即可,这是C#默认自带的基础库,不需要额外安装依赖

内容的提问来源于stack exchange,提问作者Adam Sharp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:05