在DataRow实例中按名称访问列的时间复杂度是多少?
object Foo(DataRow row, string columnName)
{
// What is the time complexity of the below line O(1) / O(n) / ?
return row[columnName];
}
答案 0 :(得分:2)
我看了Reflector,可以确认有问题的代码的时间复杂度为O(1)。实际数据存储在DataColumn实例中,使用由记录号索引的普通旧数组...每列一个数组。 DataColumn是通过Hashtable从名称获取的,记录号是直接从DataRow实例获得的。所以你有一个哈希表查找和一个数组查找,它们都是O(1)。