簡體   English   中英

刪除和替換列名 DataTable c#

[英]Remove and replace column names DataTable c#

我有一個像這樣的數據表:

        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("A", typeof(string));
        dataTable.Columns.Add("B", typeof(string));
        dataTable.Columns.Add("C", typeof(string));

        List<string> headersToSkip = new List<string>() { "A", "B" };
        Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };

        IEnumerable<DataColumn> queriableColumms = dataTable.Columns.Cast<DataColumn>().AsQueryable().ToList();

        var toBeRemoved = from DataColumn column in queriableColumms
                          where headersToSkip != null && headersToSkip.Contains(column.ColumnName)
                          select column;

        foreach (DataColumn column in toBeRemoved)
        {
            dataTable.Columns.Remove(column);
        }

        if (headersToReplace != null)
        {
            foreach (KeyValuePair<string, string> kvp in headersToReplace)
            {
                foreach (DataColumn column in dataTable.Columns.Cast<DataColumn>().AsQueryable().ToList())
                {
                    if (column.ColumnName.Equals(kvp.Key))
                        column.ColumnName = kvp.Value;
                }
            }
        }

是否可以刪除 DataTable 中的列並有效地用其他一些列名替換列名。

有效地,如果您的意思是使用更少的代碼,您可以執行以下操作。

刪除列

List<string> headersToSkip = new List<string>() { "A", "B" };
foreach(var header in headersToSkip)
{
   dataTable.Columns.Remove(header);
}

要重命名列,

Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
foreach(var header in headersToReplace)
{
    dataTable.Columns[header.Key].ColumnName = header.Value;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM