Я хочу заменить данные в текстовом файле на массив и сохранить его в переменной - PullRequest
0 голосов
/ 31 января 2019

Цель состоит в том, чтобы отобразить данные в текстовом файле.

Я буду хранить их как int в массиве y и как string в массиве x

Существует два текстовых файла, x.txt и y.txt, каждый из которых разделен пробелами .как y это 1 2 3 4 5 6 и x это a b c d.

Я надеюсь сохранить его в массиве, как

 int[]    y = {1, 2, 3, 4, 5, 6};
 string[] x = {"a", "b", "c", "d"};

Я пытаюсь StreamReader ... ноУ меня ошибка

, поэтому я хочу привести пример моей проблемы.

StreamReader sy = new StreamReader("F:/C#/graph/graph/bin/Debug/y.txt", 
Encoding.Default);
        string[] ty = sy.ReadToEnd().Split(' ');
        Console.WriteLine(ty);
        for (int i = 0; i < ty.Length; i++)
        {
                y[i] = Int32.Parse(ty[i]);
                return;
                           }

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Кажется, вы выходите из цикла преждевременно :

  for (int i = 0; i < ty.Length; i++)
  {
      y[i] = Int32.Parse(ty[i]);
      return; // <- Only 1st value will be read
  }

При запросе данных (например, файла) мы часто используем Linq ;StreamReader - это превышение (проще говоря File.ReadAllText), если вам нужно только прочитать весь файл:

  using System.Linq;

  ...

  int[] y = File
    .ReadAllText(@"F:/C#/graph/graph/bin/Debug/y.txt")
    .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(item => int.Parse(item))
    .ToArray();

  string[] x = File
    .ReadAllText(@"F:/C#/graph/graph/bin/Debug/x.txt")
    .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
    .ToArray();
0 голосов
/ 31 января 2019

Вы можете попробовать это решение:

   using(System.IO.StreamReader sr = new System.IO.StreamReader("F:/C#/graph/graph/bin/Debug/x.txt"))
    {
        string line;
        while((line = sr.ReadLine()) != null)
        {
            string[] x = line.Split(' ');
        }
    }

   using(System.IO.StreamReader sr = new System.IO.StreamReader("F:/C#/graph/graph/bin/Debug/y.txt"))
    {
        string line;
        while((line = sr.ReadLine()) != null)
        {
            string[] yString = line.Split(' ');
        }
        int[] y = Array.ConvertAll(yString , s => int.Parse(s));

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...