我有一个字符列表,我希望将此列表的元音转换为大写字母。
按照我的方式,它只返回元音并排除所有辅音。
我知道这是非常基本的,但我怎么能正确地做到这一点。?
List<char> lstVowels = new List<char>() {'a', 'e', 'i', 'o', 'u' };
lstChar = lstChar.Where(p=>lstVowels.Contains(p)).Select(t => char.ToUpper(t)).ToList();
//lstChar contains a set of consonants and vowels
答案 0 :(得分:6)
如果lstVowels
中存在某个字符,则将其转换为大写字母;否则,只要保持原样。
lstChar =
lstChar.Select(c => lstVowels.Contains(c) ? char.ToUpper(c) : c).ToList();
在您的代码中,Where
子句会导致您丢失lstVowels
中不存在的所有字符。
答案 1 :(得分:3)
个人而言,如果进入您的选择
,我会加入三元组lstChar.Select(c => lstVowels.Contains(c) ? char.ToUpper(c) : c).ToList();
答案 2 :(得分:1)
那是因为你过滤掉辅音而不是保持它们不变。
lstChar.Select(c => lstVowels.Contains(c) ? Char.ToUpper(c) : c)