使用while循环读取整个文本文件,并将文件中只有偶数的列表输出到屏幕

本文关键字:文件 屏幕 输出 列表 读取 循环 while 文本 使用 | 更新日期: 2023-09-27 18:23:42

我不知道如何将一条消息——一个只有偶数的列表——从文件输出到屏幕。

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvenNumbersFile
{
   class Program
   {
    static void Main(string[] args)
    {
        StreamReader myReader = new StreamReader("NumbersFile.txt");
        string line = "";
        while (line != null)
        {
            line = myReader.ReadLine();
            if (line != null)
                Console.WriteLine(line);
        }
        myReader.Close();
        Console.ReadLine();
      }
   }
}

使用while循环读取整个文本文件,并将文件中只有偶数的列表输出到屏幕

我想我现在明白你想要什么了。您需要解析文件中的数字,然后检查它是否可以被二整除。这里有一些代码可以尝试:

    while (line != null)
    {
        line = myReader.ReadLine();
        if (line != null)
        {
            int temp;
            if (int.TryParse(line, out temp) && (temp % 2 == 0))
            {
                Console.WriteLine(line);
            }
        }
    }

像这样的东西听起来像你需要的:

    while (line != null)
    {
        line = myReader.ReadLine();
        int number = -1;
        if (line != null)
        {
            if (Int32.TryParse(line, out number))
            {
                if (number % 2 == 0)
                {
                    Console.WriteLine(number);
                }
            }
        }
    }

如果可以保证输入文件只包含数字,则可以省略.TryParse。

更完整的版本:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PrintEvenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Clear();
            SafeForWork();
            Console.WriteLine();
            JustShowingOff();
            Console.ReadLine();
        }
        private static void SafeForWork()
        {
            StreamReader myReader = new StreamReader(@"C:'Users'Public'NumbersFile.txt");
            string line = "";
            while (line != null)
            {
                line = myReader.ReadLine();
                int number = -1;
                if (Int32.TryParse(line, out number))
                {
                    if (number % 2 == 0)
                    {
                        Console.WriteLine(number);
                    }
                }
            }
            myReader.Close();
        }
        private static void JustShowingOff()
        {
            List<String> Contents = File.ReadAllLines(@"C:'Users'Public'NumbersFile.txt").ToList();
            List<String> Evens = Contents.Where(var => (Int32.Parse(var)) % 2 == 0).ToList();
            Evens.ForEach(var => Console.WriteLine(var));            
        }
    }
}

文件内容:

12.4.136.998