将数据转换为存储在object []中的变量类型

时间:2012-11-07 09:02:16

标签: c# casting

我试图模仿fortran从C#中的文本文件中读取数据的方式。在fortran你有类似

的东西
        READ(60,2005,ERR=9880,END=8000) A,B,C,D
  2005  FORMAT(I8,A20,2F10.3)

和A,B,C,D根据格式声明自动设置为正确的类型。

我尝试过以下方面的事情:

    private static void Example(string[] Data, ref object[] Variables)
    {
        for (int i = 0; i < Data.Length; i++)
            Variables[i] = (typeof(Variables[i]))Data;
    }

但是甚至无法获得将编译的代码。

目前我通过传递对象数组中的所有数据来分配变量,就像这样

    private static object[] Example(string[] Data)
    {
        object[] output = new object[Data.Length - 1];

        for (int i = 0; i < Data.Length; i++)
        {
            int dummyInt;
            if (int.TryParse(Data[i], out dummyInt))
                output[i] = dummyInt;
            /// Try to parse other possible data types
        }

        return output;
    }

    private static void UseExample()
    {
        object[] values = Example(new string[] { "     356", "Some text           ", "   956.365", "564050.201" });
        int A = (int)values[0];
        string B = (string)values[1];
        double C = (double)values[2];
        double D = (double)values[3];
    }

这是简化的,但实际上我正在做的事情:确定数据的类型,转换为该类型并将所有字段作为对象传递出去,然后在分配给包含数据的变量时再次进行转换。 这需要知道哪些变量会出来,如果有很多数据字段,还需要进行大量的额外编码。

我正在寻找一种方法可以传递所有应该设置的变量并将它们设置为正确的值,但为此我需要能够将数据转换为适当变量的类型。 / p>

可以这样做吗?如果有可能,怎么办呢?

0 个答案:

没有答案