如何在 C# 中的一行中对列表中的所有字符执行“ToUpper”?

问题描述

我接到了这项任务,但我不知道如何去做。 我有一个字符列表,我必须返回一个内容相同的新列表,除了所有小写字符都更改为大写。

解决方法

我假设你的意思是你有一个 List<char> 并且希望所有条目都大写,使用 LINQ 和 lambda 表达式。

var chars = new List<char> {'a','b','c'};
var newList = chars.Select(Char.ToUpper).ToList();

Select 对所有条目调用 Char.ToUpper()ToList() 将结果转换回列表。

,

我推荐阅读此article,它只是说您必须检查字符大小写是否较低,然后使用以下代码将其设为较高

string str1="Great Power";  
        char ch;  
        System.Text.StringBuilder str2 = new System.Text.StringBuilder();  

for(int i = 0; i < str1.Length; i++) {  
            //Checks for lower case character  
            if(char.IsLower(str1[i])) {  
                //Convert it into upper case using ToUpper() function  
                ch = Char.ToUpper(str1[i]);  
                //Append that character to new character  
                str2.Append(ch);  
            }