首页 > 解决方案 > 从文本文件中读取,创建数字范围,过滤掉范围外的浮点数并将最终值存储在文本文件中

问题描述

我很难创建一个数字范围,然后过滤存储在文本文件中的随机浮点数并最终将数字存储在数字范围内。比如说,数字范围是 742.8 到 1000。我想过滤掉这个范围之外的那些,并将范围内的浮点数存储在文本文件中。

我创建了一个具有随机浮点数的文本文件。我已经成功创建了一个能够读取文本文件中数字的代码。

这是文本文件中的随机浮点数

743.6 
742.8
744.7
743.2
1000
1768.6
1750
1767
1780
1500

这是我的代码(现在可以读取上面的文本文件):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ReadTextFile
{
    class Program
    {
        static void Main(string[] args)
        {          
            string filePath = "C:\\Users\\Student\\Desktop\\ConsoleApp1\\ConsoleApp1\\Data\\TextFile.txt";

            List<string> lines = File.ReadAllLines(filePath).ToList();

            foreach (string line in lines)
            {
               Console.WriteLine(line);
            }
            Console.ReadLine();
        }
    }
}

更新版本:仍然无法从范围中删除数字并将范围内的数字存储在文本文件中。(编译时从文本文件中删除所有数据。)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ReadTextFile
{
class Program
{
    static void Main(string[] args)


    {

        string usersPath = "C:\\Users\\Student\\Desktop\\ConsoleApp1\\ConsoleApp1\\Data\\TextFile.txt";

        List<string> lines = File.ReadAllLines(usersPath).ToList();

        StreamWriter writer = new StreamWriter(usersPath);
        foreach (string line in lines)
        {
            double x = double.Parse(line);

            if (x > 740.9 && x < 1000.8)
            {
                writer.WriteLine(line);
              //  Console.WriteLine(line);

            }
            writer.Close();
            Console.ReadLine();
        }
    }

}

}

预期结果:将数字范围内的任何浮点数存储在文本文件中。

标签: c#range

解决方案


这基本上是您需要做的。你已经完成了一半的工作!

  1. foreach循环之前,您需要StreamWriterfilePath覆盖现有文件时打开一个。

  2. foreach循环中,将字符串转换line为一个double值(请参阅Convert.ToDouble),如果它在您的范围内,linefilePath使用StreamWriter.

  3. 关闭StreamWriter.


推荐阅读