Maciej Los
Я бы предложил использовать Регулярное выражение.Выполняется[^] метод вместе с Linq To DataSet[^].
Взгляните на пример:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("text", typeof(string)));
dt.Rows.Add(new object[]{"$LettersSignsAndNumbers20"});
dt.Rows.Add(new object[]{"OnlyLetters"});
dt.Rows.Add(new object[]{"$!&%^"});
dt.Rows.Add(new object[]{"2016"});
dt.Rows.Add(new object[]{"2016-09-09"});
var result = dt.AsEnumerable()
.Select(x=> new
{
Text = x.Field<string>("text"),
ContainsLetters = Regex.IsMatch(x.Field<string>("text"),"[a-zA-Z]{1,}"),
ContainsNumbers = Regex.IsMatch(x.Field<string>("text"),"[0-9]{1,}"),
ContainsSigns = Regex.IsMatch(x.Field<string>("text"),"[^a-zA-Z0-9]{1,}")
})
.ToList();
Console.WriteLine("Text\t|\tContainsLetters\t|\tContainsNumbers\t|\tContainsSigns");
foreach(var v in result)
{
Console.WriteLine("{0}\t|\t{1}\t|\t{2}\t|\t{3}", v.Text, v.ContainsLetters, v.ContainsNumbers, v.ContainsSigns);
};
Результат:
Text ContainsLetters ContainsNumbers ContainsSigns
$LettersSignsAndNumbers20 True True True
OnlyLetters True False False
$!&%^ False False True
2016 False True False
2016-09-09 False True True
Для получения более подробной информации, пожалуйста, смотрите:
Язык Регулярных Выражений-Краткий Справочник[
^]
Примеры LINQ to DataSet[
^]