Как удалить больше столбцов DataTable, используя C # .Net? - PullRequest
1 голос
/ 21 июля 2011

У меня одна DataTable может иметь больше столбцов. Но «NetAmount», «TotalAmount», «Destination» - это столбцы DataTable, которые всегда присутствуют в DataTable.

Здесь я хочу удалить три столбца, таких как «NetAmount», «TotalAmount» и «Destination», из DataTable и взять другие значения столбца в DataTable.

Я попытался, как показано ниже, и получил желаемый результат.

  dtAttribute.Columns.Remove("NetAmount"); //dtAttribute is the Main DataTable
  dtAttribute.Columns.Remove("TotalAmount");
  dtAttribute.Columns.Remove("Destination");
  DataTable dtItem = dtAttribute.Copy();      

Но это выглядит очень по-детски и долго. Есть ли другой способ сделать? Пожалуйста, дайте предложения.

Ответы [ 2 ]

7 голосов
/ 21 июля 2011

В вашем коде нет ничего плохого (кроме того, что вы копируете таблицу после удаления столбцов - вы уверены, что это то, что вы хотите?).

Если вы хотите что-то более абстрактное (вместо повторения одной и той же строки снова и снова), вы можете рассмотреть возможность удаления столбцов в цикле:

var dtItem = dtAttribute.Copy();    // if you want to keep a copy of the original table

var toRemove = new string[] {"NetAmount", "TotalAmount", "Destination"};
foreach (col in toRemove)
    dtItem.Columns.Remove(col);
0 голосов
/ 21 июля 2011

Вместо удаления столбцов, как насчет того, чтобы не помещать их в DataTable в первую очередь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...