【问题标题】:How do I read three text files and sort into three row jagged array in C#?如何在 C# 中读取三个文本文件并排序为三行锯齿状数组?
【发布时间】:2017-09-27 15:57:09
【问题描述】:

我的 C# 项目是一个 Windows 窗体。

我的 bin/debug 文件夹中有三个包含不同课程部分考试成绩的文本文件。

这是我真正需要帮助的部分:我需要将文件存储在除以 section 的三行锯齿状数组中。


最后,使用锯齿状数组,我需要在文本框中显示这些计算:

每个部分的平均分

所有部分的平均分

所有部分的最高分

所有部分的最低分。


Section1.txt:

 87
 93
 72
 98
 65
 70
 89
 78
 77
 66
 92
 72

Section2.txt:

 71
 98
 93
 79
 84
 90
 88
 91

Section3.txt:

 88
 81
 56
 72
 69
 74
 80
 66
 71
 73

【问题讨论】:

  • 我认为你应该首先将文件路径存储到数组并通过数组循环读取文件数据。
  • @Jze 我真的只需要帮助格式化数组。
  • 是的,我还需要有人在我遇到困难时为我编写代码。大问题,我告诉你......不,说真的,到目前为止你尝试了什么? (请记住,这里的人们很乐意帮助您进行编码工作,但他们通常不喜欢为您编码......)
  • @elgonzo 我已将它们放入锯齿状数组中,我只是不知道如何将数组格式化为三行。我只是把所有的信息都记录下来,以备不时之需。
  • 对不起,你想要什么非常不清楚。你说的是行吗?什么行?什么的?我让你用“WinForms”标记你的问题。但是,如果您说“格式化数组”并提及“行”,您到底在说什么?显示到目前为止您在“将数组格式化为行”方面所做的代码...

标签: c# .net winforms jagged-arrays


【解决方案1】:

让我们从将一个文件读入数组开始;借助 Linq 很容易:

using System.IO;
using System.Linq;

...

string path = @"C:\MyFile1.txt";

int[] result = File
  .ReadLines(path)
  .Select(line => int.Parse(line))
  .ToArray(); 

现在,让我们拥有一个文件,而不是一个集合

string[] filePaths = new string[] {
  @"C:\MyFile1.txt",
  @"C:\MyFile2.txt",
  @"C:\MyFile3.txt",
};

int[][] result = filePaths
  .Select(path => File //The inner code looks familiar, right?
    .ReadLines(path)
    .Select(line => int.Parse(line))
    .ToArray()) 
  .ToArray();

【讨论】:

    【解决方案2】:

    首先,您在 bid/debug 文件夹中存储了三个文本文件。

    Section1.txt、Section2.txt、Section3.txt

    你可以得到这个文本文件的路径。对吧? 因此,您可以将此文本文件路径存储到字符串数组中。

    第二:通过循环这个字符串数组可以从每个文本文件中获取数据。这里如何从文本文件中读取数据=>http://stackoverflow.com/questions/8037070/whats-the-fastest-way-to-read-a-text-file-line-by-line

    可以通过“空格”或“\n”分割字符串数据得到Section 1字符串数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 2011-12-31
      • 2020-06-15
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      相关资源
      最近更新 更多