无法将lambda表达式转换为委托类型';System.Func<;char,bool>';

本文关键字:System Func char gt bool lt 类型 lambda 表达式 转换 | 更新日期: 2023-09-27 18:24:01

我必须将每个单词的最后一个字母大写。

输入:这是堆栈溢出

输出:thiS iStack oveR floW

我试图用以下代码实现它:

return String.Join(" ", s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(c => c.Last((s1 => Char.ToUpper(s1)))));

但它不会编译。

我在声明Char.ToUpper(s1) 上有两个错误

错误1:

无法将类型"char"隐式转换为"bool"

错误2:

无法将lambda表达式转换为委托类型"System.Func",因为块中的某些返回类型不能隐式转换为委托返回类型

无法将lambda表达式转换为委托类型';System.Func<;char,bool>';

这个怎么样?

var result = String.Join(" ", s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
             .Select(c => c.Substring(0, c.Length - 1) + char.ToUpper(c.Last())));

它获取单词的整个子字符串,只更改最后一个字符。