Dot-Net

在 .Net DataSets 上使用列名或列索引會更好嗎?

  • March 21, 2018

從 DataRow 檢索值時,使用列名還是列索引更好?

列名更具可讀性和更易於維護:

int price = (int)dr["Price"];

雖然列索引更快(我認為):

int price = (int)dr[3];

如果您決定混淆數據庫,使用列名會中斷嗎?

我通常更喜歡可讀性和理解而不是速度。隨名而去。如果您決定更改數據庫列名,您可以(應該)使用可以在一處更新的字元串常量。

通過列名訪問列/行值更利於人類閱讀和向前兼容性(如果將來有人更改順序或列數)。

通過列索引訪問列/行值對性能更好。

所以,如果你想改變一個/兩個/…..行中的一些值,列名是可以的。但是,如果您想更改數千行中的某個值,則應使用從列名計算的列索引:

int ndxMyColumn = table.Columns.IndexOf( "MyColumn" );
foreach(DataRow record in table.Rows ) {
   record[ndxMyColumn] = 15;
}

引用自:https://stackoverflow.com/questions/473205