C#疑惑,找数据类型

标签 c# parsing types

我有以下变量:

string str1 = "1";
string str2 = "asd";
string str3 = "3.5";
string str4 = "a";

现在我需要找到每个字符串的数据类型,即如果删除引号,它可以转换成的数据类型。这是我希望每个变量转换为的内容:

str1 - integer
str2 - string
str3 - double
str4 - char

注意:如果字符串只有一个字符,它应该是 char,虽然一个字符串可以有一个字母,但我限制了它。

仅供引用:这些值是从 DataGrid 中获得的,我在其中手动输入了值。所以一切都变成了一个字符串。 有什么办法吗?

最佳答案

当然,没有明确的方法可以做到这一点,但如果您创建一个要按优先级排序的数据类型列表,那么类似这样的方法可能会奏效。

object ParseString(string str)
{
    int intValue;
    double doubleValue;
    char charValue;
    bool boolValue;

    // Place checks higher if if-else statement to give higher priority to type.
    if (int.TryParse(str, out intValue))
        return intValue;
    else if (double.TryParse(str, out doubleValue))
        return doubleValue;
    else if (char.TryParse(str, out charValue))
        return charValue;
    else if (bool.TryParse(str, out boolValue))
        return boolValue;

    return null;
}

只需对每个字符串调用此函数,您就应该返回适​​当类型的对象。一个简单的类型检查就可以告诉您字符串是如何被解析的。

关于C#疑惑,找数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606365/

相关文章:

C#创建从基类继承的泛型类的实例

javascript - 创建 MVC 格式的动态元素

python - 用漂亮的汤解析 TEI-XML

types - 为什么这个 Discriminated Union 不接受 Set 类型的案例?

c++ - 如何在 C++ 中标记要转换到哪个类?

generics - 在 Typescript 中创建通用方法装饰器

c# - 如何使用 EF Core Oracle 生成和自动递增 Id

c# - 将代码从 Unity 4 转换为 Unity 5

html - xpath 在页面中查找特定链接

python - python中的小语言