如何.ToUpper()使用LINQ的数组的每个元素?

Den*_*ail 3 c# linq .net-4.0

我有这个LINQ表达式:

string[] x = originalString.Split(',').ToList().ForEach(y => y.Substring(0,1).ToUpper());
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

Cannot convert source type 'void' to target type 'string[]'
Run Code Online (Sandbox Code Playgroud)

我想我得到了错误; ForEach返回void.我不知道如何修复它仍然保持这个LINQ表达式.

如何拆分originalString然后遍历数组中的元素,应用.ToUpper()每个元素并在LINQ表达式中完成所有操作?

Mar*_*zek 10

string[] x = originalString.Split(',')
                           .Select(y => y.Substring(0,1).ToUpper())
                           .ToArray();
Run Code Online (Sandbox Code Playgroud)

应该做的事情 - 得到每个单词的第一个字母,大写.

但我认为你真正想要的是:

string[] x = originalString.Split(',')
                           .Select(y => y.Substring(0, 1).ToUpper() + y.Substring(1))
                           .ToArray();
Run Code Online (Sandbox Code Playgroud)

这应该大写从输入中分离出来的元素(听起来更有用).

第二个查询的用法示例:

 string originalString = "TestWord,another,Test,word,World,Any";
Run Code Online (Sandbox Code Playgroud)

输出:

TestWord
Another
Test
Word
World
Any
Run Code Online (Sandbox Code Playgroud)