将列表中的元音转换为大写

时间:2014-05-01 11:57:52

标签: c#

我有一个字符列表,我希望将此列表的元音转换为大写字母。

按照我的方式,它只返回元音并排除所有辅音。

我知道这是非常基本的,但我怎么能正确地做到这一点。?

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

3 个答案:

答案 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)