@akass
Developer

Как проверить что в коллекции все строки из заданных букв?

Есть метод , на вход идет коллекция , состоящая из строк , как проверить что все строки из букв , а не из цифр или еще каких кракозябр?
P.S. оказалось что надо чтобы были не просто строки из букв ,а из 4 возможных букв , подскажите как реализовать?
  • Вопрос задан
  • 2220 просмотров
Пригласить эксперта
Ответы на вопрос 3
Neuroware
@Neuroware
Программист в свободное от работы время
для char есть функция IsLetter, с ней можно сделать так:

<code lang="cs">
static void Main(string[] args)
        {
            List<string> s = new List<string>();
            s.Add("asdasdasd");
        }

        string AllIsLetter(List<string> s)
        {
            foreach (string str in s)
            {
                foreach (char ch in str)
                {
                    if (!Char.IsLetter(ch))
                    {
                        return "Не все строки содержат только буквы!";
                    }
                }
            }
            return "В коллекции только буквы";
        }
</code>
Ответ написан
Комментировать
@bmforce
С помощью linq:

List<string> list = new List<string> { "sdfsd", "dfgdf", "ssss" };
bool result;
result = list.TrueForAll(s => s.All(c => Char.IsLetter(c)));
Console.WriteLine(result); //true

list = new List<string> { "sdf5", "dfgdf", "ssss" };
result = list.TrueForAll(s => s.All(c => Char.IsLetter(c))); 
Console.WriteLine(result); //false
Ответ написан
@sergeysmishin
class Program
{
    static void Main(string[] args)
    {
        var stringList = new List<string> {"asdasd","","adadasd","фывфывфыв","dвыацwe"};

        Console.WriteLine(CheckList(stringList) ? bool.TrueString : bool.FalseString);
    }
	
    private static bool CheckList(IEnumerable<string> stringList)
    {
        return stringList.All(str => Regex.IsMatch(str, @"\A\p{L}*\Z"));
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы