C# - 使用struct或enum在字符串中查找元音

Ler*_*ica 0 c# struct

我正在学习使用C#中的主要类型.为此,我制作了一个简单的算法来查找字符串中的元音.这里是:

 public static string Vowels()
        {
            string myString = "Count the number of the vowels in this string";
            string output = string.Empty;
            for (int i = 0; i < myString.Length; i++)
            {
                if (myString[i] == 'a' || myString[i] == 'e' ||
                    myString[i] == 'i' || myString[i] == 'o' ||
                    myString[i] == 'u')
                {
                    output += myString[i].ToString().ToUpper(); //Vowel
                }

            }
            return output;
        }
Run Code Online (Sandbox Code Playgroud)

首先 - 我不喜欢我的if陈述中的这么多条件所以我认为使用一些指示类型将是一种更优雅的方式来保持元音,其次,即使有充分的理由选择if陈述相反struct,enum或者我想学习使用它们的任何其他类型.你能帮我找到最好的方法来查找myString字符串中的每个字符使用structenum(你认为哪个更好)将元音留在其中?

谢谢

Leron

Jon*_*eet 7

考虑在编程中完成任务并不是一种有用的方式...尤其是这一点.在这种情况下,您正在进行数据处理,这更适合LINQ.例如,您的方法可以实现为:

public static string ExtractVowels(string text)
{
    // Note that this won't find upper-case vowels...
    var vowelArray = text.Where(c => "aeiou".Contains(c))
                         .ToArray();
    // Upper-case it if you want, of course.
    return new string(vowelArray);
}
Run Code Online (Sandbox Code Playgroud)

不需要枚举或任何类似的东西.您应该考虑任务中涉及的步骤,然后考虑是否需要存储状态,如果是,则需要什么样的状态等.