如何将一列字符串从文本文件解析为枚举。 C#

时间:2018-10-05 08:54:51

标签: c# parsing enums

我有一个文本文件,可以逐行解析为对象值,如下所示:

454864.35 6780638.76 -2206.263 3.000000

452235.30 6780927.62 -2081.68 3.000000

456687.71 6781378.11 -1978.47 2.000000

455560.87 6781230.55 -2173.23 1.000000

454072.22 6781284.69 -2154.58 3.000000

453191.10 6781416.43 -2147.66 3.000000

451562.12 6781809.06 -2251.86 0.000000

454301.38 6781950.10 -2061.31 3.000000

我要解析为对象的值是IndexX,IndexY,IndexZ和代表我为之创建枚举的岩石类型(0-3)的值。

  public enum FaciesCodeType
     {
         Sand = 0,
         FineSand = 1,
         CoarseSand = 2,
         Shale = 3,
     }

我当前的文本转换器方法如下:

        public PetrelDataFaciesCodeModel FromFaciesCodeTxtLine(string txtline)
    {
        string[] values = txtline.Split(' ');
        PetrelDataFaciesCodeModel dataFaciesValues = new PetrelDataFaciesCodeModel();
        dataFaciesValues.IndexX = float.Parse(values[0]);
        dataFaciesValues.IndexY = float.Parse(values[1]);
        dataFaciesValues.IndexZ = float.Parse(values[2]);
        dataFaciesValues.FaciesCode = 

        return dataFaciesValues;
    }

我的问题是我如何读取文本文件并从枚举创建对象值,该枚举是根据每个文本行的索引位置[4]上的值进行解析的?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

所以基本上您的问题可以归结为:

如何读取表示浮点值的字符串并将其转换为枚举值?

您需要做的就是像其他一样解析浮点数并将结果转换为您的枚举类型...

所以在您的情况下:

dataFaciesValues.FaciesCode = (FaciesCodeType)float.Parse(values[3]);