Создание DataTable путем фильтрации другого DataTable

Я работаю над системой, которая в настоящее время имеет довольно сложную функцию, которая возвращает DataTable, который затем привязывается к элементу управления GUI в ASP.NET WebForm.

Моя проблема в том, что мне нужно фильтровать возвращаемые данные - некоторые из возвращаемых данных не должны отображаться для пользователя.

Мне известно о DataTable.select (), но это не совсем то, что мне нужно. Во-первых, он возвращает массив DataRows, и мне нужен DataTable, чтобы я мог привязать его к элементу управления GUI. Но что более важно, фильтрацию, которую мне нужно выполнить, нельзя легко выразить простым выражением. У меня есть массив элементов, которые я не хочу отображать, и мне нужно сравнить каждый элемент из DataTable с этим массивом.

Конечно, я мог бы создать новый DataTable, считывая все из оригинал, добавив к новому то, что уместно, а затем привязав новое к элементу управления GUI. Но это почему-то кажется неправильным. В этом случае количество элементов в исходном DataTable вряд ли будет достаточно, чтобы копирование их всех в памяти вызвало слишком много проблем, но я m интересно, есть ли другой способ.

Имеет ли .NET DataTable функциональность, которая позволила бы мне фильтровать через функцию обратного вызова?

5
задан Jeff Dege 23 December 2010 в 19:42
поделиться