Вы можете довольно легко запросить DataTable с помощью LINQ, а затем вы можете использовать фактическое регулярное выражение в запросе, чтобы фильтровать его так, как вам нравится.
Как то так ...
var source = myDataTable.AsEnumerable();
var results = from matchingItem in source
where Regex.IsMatch(matchingItem.Field<string>("Name"), "<put Regex here>")
select matchingItem;
//If you need them as a list when you are done (to bind to or something)
var list = results.ToList();
Это даст вам строки, которые соответствуют на основе фактического регулярного выражения, я не знаю, что вам нужно делать с информацией, но это позволит вам получить строки на основе регулярного выражения.
**** Обновление ** - Попытка уточнить на основе комментария
Я не знаю, для чего вы это используете, поэтому у меня нет хорошего контекста, но из того, что я могу догадаться, вы используете DataTable для привязки данных к Grid или что-то в этом роде. Если это так, я думаю, что вы должны иметь возможность назначить «список» из фрагмента, который я вставил здесь, как DataSource (при условии, что вы используете BindingSource), и я думаю, что он будет работать. Я не использую DataTables, я обычно придерживаюсь объектов для работы с моими данными, поэтому я не совсем уверен, как он будет обрабатывать список строк, но я думаю, что он будет работать (или будет достаточно близко, чтобы немного поискать в Google сделает это).