将字符串数组的数字索引转换为双精度数组

时间:2019-01-24 17:41:01

标签: c#

我正在从一个文本文件中读取,拉动每一行,用1 |查找第一行,然后将其转换为数组。为此,我只想要第4个索引,以便可以对数组求和和计数。

这是将文本文件转换为数组的内容 1 | 123456 | 01/06/2019 | 123456 | 100.00 | USD |收到款项后应付款| TEST1 || 98790125 | TEST2 | TEST3 | N

所以[0] = 1,[2] = 123456,依此类推。依此类推。我正尝试从中提取100.00并将其放入自己的数组中,这样我就可以轻松地对总和加倍并计算元素。由于原始数组是一个字符串,所以对我来说很难。

我尝试创建一个已经拆分的单独的字符串数组,然后提取第4个索引并创建一个可以计数和求和的double数组。我还尝试过从它拉出的str的一行中分割并创建一个int数组。

        string str;
        using (StreamReader file = new StreamReader("c:\\testdoc.txt"))
            while ((str = file.ReadLine()) != null)
            {
                string[] strArray = str.Split('|');
                if (strArray[0] == "1")
                {
                    double[] itotals = strArray.Select(i => Convert.ToDouble(i)).ToArray();
                    int count = itotals.Length;
                    double amt = itotals.Sum();
                    Console.WriteLine("Count: " + count + " Amt: " + amt);
                }
                else
                {
                }
            }

我希望它找到以1 |开头的行,然后告诉控制台写入计数:1 amt:100.00,但实际上我只是得到输入字符串格式不正确的错误。我知道拆分后需要拉第4个索引,但是我不确定该在哪里做。

1 个答案:

答案 0 :(得分:1)

尝试一下

string str;
        int count = 0;
        double amt = 0;
        using (StreamReader file = new StreamReader("c:\\testdoc.txt"))
            while ((str = file.ReadLine()) != null)
            {
                string[] strArray = str.Split('|');
                if (strArray[0] == "1")
                {
                    string itotals = strArray[4];
                    count = count+1;
                    amt = amt + Convert.ToDouble(strArray[4]);
                    Console.WriteLine("Count: " + count + " Amt: " + amt);
                }
                else
                {
                }
            }