如何将字符串数组(从文本文件中读取)更改为整数数组?这样我就可以搜索和排序数据

时间:2019-04-13 19:59:51

标签: c# arrays string int system.io.file

我正在读取几个文本文件,我需要在其中搜索数据并对数据进行排序,因为我已经使用一些先前的代码完成了搜索和排序,所以这不是问题。但是,我似乎无法做的是让程序将文件中的字符串数组更改为int数组。任何帮助将不胜感激。

我已经尝试过tryparse,bool,decimal,int,int32等。对于C#,我是一个相对较新的人,所以请不要假冒它们肯定不会起作用,因为它们可能会起作用。 ..只是我还不知道如何...

//Reads Files
            string Low256 = "Low_256.txt";
            string[] LowString256 = File.ReadAllLines(Low256);
            string High256 = "High_256.txt";
            string[] HighString256 = File.ReadAllLines(High256);
            string Mean256 = "Mean_256.txt";
            string[] MeanString256 = File.ReadAllLines(Mean256);

//Removes Spaces from the txt file
            int i = 0;
            int[] LowArray256 = new int[256];
            foreach (string line in LowString256)
                if (line != " ")
                {
                    LowString256[256] = line;
                    i++;
                }
            int[] HighArray256 = new int[256];
            foreach (string line in LowString256)
                if (line != " ")
                {
                    LowString256[256] = line;
                    i++;
                }
            int[] MeanArray256 = new int[256];
            foreach (string line in LowString256)
                if (line != " ")
                {
                    LowString256[256] = line;
                    i++;
                }

//Converts Strings Arrays To Int 
            LowArray256 = Array.ConvertAll(LowString256, Int32.Parse);
            HighArray256 = Array.ConvertAll(HighString256, Int32.Parse);
            MeanArray256 = Array.ConvertAll(MeanString256, Int32.Parse);

收到的错误是System.FormatException:'输入字符串的格式不正确。'

期望的结果是能够使用int数组搜索和排序数据。

编辑

文件包含诸如...之类的数据。

16.8614

15.3207

18.3596

17.1516

15.5238

18.4468

19.2638

17.0751

...以这种格式显示,每个数字后都有一个空格和一个换行符。 该文档本身无法编辑。

1 个答案:

答案 0 :(得分:0)

如果文件的每一行都包含一个数字,这应该可以工作:

            //Read files
            string Low256 = "Low_256.txt";
            string[] LowString256 = File.ReadAllLines(Low256);
            string High256 = "High_256.txt";
            string[] HighString256 = File.ReadAllLines(High256);
            string Mean256 = "Mean_256.txt";
            string[] MeanString256 = File.ReadAllLines(Mean256);

            //Convert string[] to int[]
            int[] Low256Int = new int[LowString256.Length];
            for (int i = 0; i < LowString256.Length; i++)
            {
                int.TryParse(LowString256[i], out int parsed);
                Low256Int[i] = parsed;
            }

            int[] Mean256Int = new int[MeanString256.Length];
            for (int i = 0; i < MeanString256.Length; i++)
            {
                int.TryParse(MeanString256[i], out int parsed);
                Mean256Int[i] = parsed;
            }

            int[] High256Int = new int[HighString256.Length];
            for (int i = 0; i < HighString256.Length; i++)
            {
                int.TryParse(HighString256[i], out int parsed);
                High256Int[i] = parsed;
            }