Преобразование массива строк в массив чисел - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д