C#非元音词

时间:2009-12-01 14:56:01

标签: c# extension-methods

我想要一个需要返回非元音词的扩展方法。我设计了

 public static IEnumerable<T> NonVowelWords<T>(this IEnumerable<T> word)
    {
        return word.Any(w => w.Contains("aeiou"));
    }

我收到错误,因为“T”不包含extanesion方法“Contains”。

2 个答案:

答案 0 :(得分:14)

如果你总是处理字符串,则不需要使用泛型方法。

public static IEnumerable<string> NonVowelWords(this IEnumerable<string> words)
{
    char[] vowels = { 'a', 'e', 'i', 'o', 'u' };

    return words.Where(w => w.IndexOfAny(vowels) == -1);
}

答案 1 :(得分:1)

尝试

public static IEnumerable<string> NonVowelWords<T>(this IEnumerable<string> word)
{
    return word.Where(w => !(w.Contains("a") || w.Contains("i") || w.Contains("u") || w.Contains("e") || w.Contains("o")));
}