C# 如何在c中更改datatable中所有列的数据类型#

C# 如何在c中更改datatable中所有列的数据类型#,c#,.net,c#-4.0,c#-datatable,C#,.net,C# 4.0,C# Datatable,我有一个DataTable dt,它的所有列都是string类型,但其中许多列中都有“integer值”,只是作为一个字符串 例如:- 可乐 二十三 三十四 56 它们也存储在datatable中,但作为字符串值 我想知道如何根据列的内容克隆具有有效数据类型的列的数据表。在这种情况下,您可以使用typeof枚举类型列表并确定其类型。 例如,您可以这样做: if (obj1.GetType() == typeof(int)){ // do something with int }else

我有一个DataTable dt,它的所有列都是string类型,但其中许多列中都有“integer值”,只是作为一个字符串

例如:-

可乐

二十三

三十四

56

它们也存储在datatable中,但作为字符串值


我想知道如何根据列的内容克隆具有有效数据类型的列的数据表。

在这种情况下,您可以使用
typeof
枚举类型列表并确定其类型。

例如,您可以这样做:

if (obj1.GetType() == typeof(int)){
    // do something with int
}else if (obj1.GetType() == typeof(string)){
    // do something with string
}
否则,如果它不是一个对象,而只是一个可以与
is
进行比较的值:

if (myValue is Foo)
    Foo foo = (Foo)myValue;
编辑: 好吧,我犯了个错误。你必须使用
tryParse
来实现你想要的。这种方法非常相似,如果解析成功,则必须循环不同的类型并检查返回值。例如:

int number;

bool result = Int32.TryParse(myString, out number);
if (result)
{
    Console.WriteLine("Converted '{0}' to {1}.", myString, number);         
}

您好,我已经看到了,但是他们只使用了int32,我要求首先获取类型,然后进行相应的转换。@Praydeep从何处获取类型?如果可以将每个字符串转换为其他数据类型,您可能需要测试它们,然后根据测试结果创建一个表数据表填充了什么?你能在那里做转换而不是填充然后转换吗?它是从xml填充的。哦,我明白了。。。我不明白,对不起。对于
tryParse
,仍然有类似的解决方案。我将编辑上面的答案。