C # не гласные слова - PullRequest
       11

C # не гласные слова

0 голосов
/ 01 декабря 2009

Я хочу метод расширения, который должен возвращать не гласные слова. Я разработал

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

Я получил ошибку, поскольку "T" не содержит метод расширения "Contains".

Ответы [ 2 ]

14 голосов
/ 01 декабря 2009

Вам не нужно использовать универсальный метод, если вы всегда имеете дело со строками.

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 голос
/ 01 декабря 2009

Попробуйте

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")));
}
...