Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ?
Здравствуйте, sndanil, Вы писали:
S>Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ?
Правду говорит мужик, потому как для DataRow :
public object this[int value]
{
get
{
return this[this.Table.Columns[columnIndex]];
}
set
{
this[this.Table.Columns[columnIndex]] = value;
}
}
public object this[string columnName]
{
get
{
DataColumn column1 = this.Table.Columns[columnName];
if (column1 == null)
{
throw ExceptionBuilder.ColumnNotInTheTable(columnName, this.Table.TableName);
}
return this[column1];
}
set
{
DataColumn column1 = this.Table.Columns[columnName];
if (column1 == null)
{
throw ExceptionBuilder.ColumnNotInTheTable(columnName, this.Table.TableName);
}
this[column1] = value;
}
}
<< RSDN@Home 1.1.2 stable >>
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
Здравствуйте, clon, Вы писали:
C>Здравствуйте, sndanil, Вы писали:
S>>Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ? C>Правду говорит мужик, потому как для DataRow :
И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:
C>
Здравствуйте, Ved, Вы писали:
Ved>И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:
В том что все эти Индексеры сначало получают DataColumn из коллекции Table.Columns, И по полученному DataColumn
возвращают значение. Короче все индексеры в конечном итоге идут вот сюда
public object this[DataColumn column, DataRowVersion version]
{
get
{
this.CheckColumn(column);
return column[this.GetRecordFromVersion(version];
}
}
Так что самый быстрый доступ к значению, это напрямую использовать этот Индексер.
Здравствуйте, V.Petrovski, Вы писали:
VP>Здравствуйте, Ved, Вы писали:
Ved>>И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:
VP>В том что все эти Индексеры сначало получают DataColumn из коллекции Table.Columns, И по полученному DataColumn VP>возвращают значение. Короче все индексеры в конечном итоге идут вот сюда VP>
VP>Так что самый быстрый доступ к значению, это напрямую использовать этот Индексер.
Это понятно. Так и используется везде. Просто я не понял, к чему был приведен код — то ли как сравнение, то ли как просто пример. А какой более медленный способ?