将.text文件解析为不同的数据类型

时间:2011-10-02 22:31:04

标签: c# parsing types casting

所以我有一个文本文件,内容如下:

-9
5.23
b
99
Magic
1.333
aa

当我尝试使用以下代码读取它时,GetType()函数将其输出为字符串:

string stringData;

streamReader = new StreamReader(potato.txt);
while (streamReader.Peek() > 0)
{
    data = streamReader.ReadLine();
    Console.WriteLine("{0,8} {1,15}", stringData, stringData.GetType());
}

然后是输出:

-9      System.String
5.23    System.String
b       System.String
99      System.String
Magic   System.String
1.333   System.String
aa      System.String

据我所知,我要求streamReader类以字符串形式全部读取它。

我的问题是,如何将其作为不同的不同数据类型(即string,int,double)读取,并将其输出为:

-9      System.int
5.23    System.double
b       System.String
99      System.int
Magic   System.String
1.333   System.double
aa      System.String

2 个答案:

答案 0 :(得分:6)

您必须将字符串转换为以下类型:

string stringData;
double d;
int i;

streamReader = new StreamReader(potato.txt);
while (streamReader.Peek() > 0)
{
   data = streamReader.ReadLine();

   if (int.TryParse(data, out i) 
   {       
       Console.WriteLine("{0,8} {1,15}", i, i.GetType());
   }
   else if (double.TryParse(data, out d) 
   {       
       Console.WriteLine("{0,8} {1,15}", d, d.GetType());
   }
   else Console.WriteLine("{0,8} {1,15}", data, data.GetType());
}

答案 1 :(得分:1)

通常你会知道类型(文件的结构)。

如果没有,请使用RegEx检查可能的intdouble值,将其余值恢复为string