C# 减少遍历数据集时的时间复杂性

C# 减少遍历数据集时的时间复杂性,c#,.net,time-complexity,C#,.net,Time Complexity,我有一个数据集,有n个数据表。n的最小值为30。 在每个数据表中,第一行定义以下行中数据的数据类型。例如: string Integer string Integer Integer test1 67 test1 45 78 test2 45 test1 32 45 // Will require that all values inserted in this column can be converted to Int

我有一个数据集,有n个数据表。n的最小值为30。 在每个数据表中,第一行定义以下行中数据的数据类型。例如:

string  Integer  string  Integer  Integer
test1    67      test1   45       78
test2    45      test1   32       45
// Will require that all values inserted in this column can be converted to Int32
dt.Columns[0].DataType = typeof(Int32);
可以有任意数量的行,我需要验证数据是否与定义的数据类型匹配。例如,test1是一个字符串,67是一个整数,等等

我需要对整个数据集进行验证

下面是我想出的代码:

foreach(DataTable dt in dataset.Tables)
{
 for(int iRow = 1; iRow <dt.Rows.Count; iRow ++)
    { 
     for(int jCol = 0;jCol< dt.Columns.Count;jCol++)
      {
       //Datatype validation check
      }
    }
}
foreach(dataset.Tables中的DataTable dt)
{

对于(int-iRow=1;iRow如果你需要做t*r*c检查,那么这就是你可以检查的数量。我建议你尽量减少恒定时间因素并接受复杂性

减少固定时间的一种方法是:如果您告诉C#列的数据类型应该是什么,它将在您将数据放入数据表时为您检查类型

例如:

string  Integer  string  Integer  Integer
test1    67      test1   45       78
test2    45      test1   32       45
// Will require that all values inserted in this column can be converted to Int32
dt.Columns[0].DataType = typeof(Int32);

您可以做的另一件事是检查较少的列。

如果您需要检查所有dat,您必须检查它,而且复杂性无法降低您没有提供足够的信息来帮助我们。如果不知道您正在进行的实际计算,我们无法优化。