C# 减少遍历数据集时的时间复杂性
我有一个数据集,有n个数据表。n的最小值为30。 在每个数据表中,第一行定义以下行中数据的数据类型。例如: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
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,您必须检查它,而且复杂性无法降低您没有提供足够的信息来帮助我们。如果不知道您正在进行的实际计算,我们无法优化。