DataRow索引器的时间复杂度是多少?

时间:2009-11-04 08:42:11

标签: c# ado.net c#-3.0 c#-2.0

在DataRow实例中按名称访问列的时间复杂度是多少?


object Foo(DataRow row, string columnName)
{
    // What is the time complexity of the below line O(1) / O(n) / ?
    return row[columnName];
}

1 个答案:

答案 0 :(得分:2)

我看了Reflector,可以确认有问题的代码的时间复杂度为O(1)。实际数据存储在DataColumn实例中,使用由记录号索引的普通旧数组...每列一个数组。 DataColumn是通过Hashtable从名称获取的,记录号是直接从DataRow实例获得的。所以你有一个哈希表查找和一个数组查找,它们都是O(1)。