Преобразование массива строк в массив чисел - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо считать данные с текстового файла (много строк содержащих по 6 чисел через запятую) и в каждой из них отсортировать числа по возрастанию. Вроде все норм, но не могу преобразовать массив строк в массив чисел. Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace HomeTask_1
{
    
    class MainClass
    {
        
        public static void Main (string[] args)
        {
            StreamReader reader = new StreamReader("C:\\Users\\1\\Desktop\\Комбинации.txt");
            string allnum = Convert.ToString(reader);
            string[] lines = allnum.Split ('\n');//разделяем текст на строки с числами
            int[] numb = new int[5];//в каждой строке только 6 чисел
            for (int i = 0; i < lines.Length; i++) {//в этом большом цикле
                string[] numbers = lines [i].Split (' ');//мы разделяем первую строку на числа
                for (int o = 0; o < lines.Length; o++){//конвертируем их в массив int
                    numb[i] = Convert.ToInt32(numbers[i]);//как раз здесь проблема
                }
                int[] readynum = BubbleSort (numb);//потом отправляем массив в функцию где первая строка будет отсортирована
                StreamWriter writer = new StreamWriter("C:\\Users\\1\\Desktop\\Отсортировка.txt");//далее
                for (int y = 0; y < lines.Length; y++) {//записываем отсортированные данные в другой файл
                    writer.WriteLine (readynum [i]);//тут возможно тоже ошибку выбьет, но пока ее нет
                }
                writer.Close();
 
            }
             
        }
 
        public static int[] BubbleSort(int[] num)
        {
            for (int i = 0; i < num.Length; i++)
            {
                for (int j = 0; j < num.Length - 1; j++)
                {
                    if (num[j] > num[j + 1])
                    {
                        int z = num[j];
                        num[j]=num[j+1];
                        num[j + 1] = z;
                    }
                }
            }
            return num;
        }
    }
}

Решение задачи: «Преобразование массива строк в массив чисел»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace ConsoleApplication37 {
    class Program {
        static void Main(string[] args) {
            string s="";
            File.ReadAllLines(@"C:\Test.txt").ToList().ForEach(i => s += i+ " ");
            int[] arr = s.Split(new[] { ',', ' ', }, StringSplitOptions.RemoveEmptyEntries).Select(i => int.Parse(i)).ToArray();
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы