我有一个包含以下内容的文本文件:
0 0 1 0 3
0 0 1 1 3
0 0 1 2 3
0 0 3 0 1
0 0 0 1 2 1 1
0 0 1 0 3
0 0 1 1 3
0 0 1 2 3
0 0 3 0 1
0 0 1 2 3
0 0 3 0 1
两行之间没有空格,但数字之间有空格。我想从txt文件中读取这些整数并保存在C#中的int数组列表中。任何人都可以帮助
答案 0 :(得分:1)
假设您的字符串被称为文本,并包含“1 1 1 0 3 2 3”等。 你声明一个字符串数组。
String[] numbers1=text.Split(" ");
现在声明你的int数组并将每个数组转换为int。
int[] numbers2=new int[numbers.Length];
for(int i=0; i<numbers.Length; i++)
numbers2[i]=Convert.ToInt32(numbers1[i]);
你已经完成了。
答案 1 :(得分:1)
这对我有用:
var numbers =
System.IO.File
.ReadAllLines(@"C:\text.txt")
.Select(x => x.Split(' ')
.Select(y => int.Parse(y))
.ToArray())
.ToList();
我得到了这个结果:
答案 2 :(得分:0)
var resultList = new List<int>();
File.ReadAllLines("filepath")
.ToList()
.ForEach((line) => {
var numbers = line.Split()
.Select(c => Convert.ToInt32(c));
resultList.AddRange(numbers);
});
答案 3 :(得分:0)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace FileToIntList
{
class Program
{
static void Main(string[] args)
{
// Read the file as one string.
System.IO.StreamReader myFile =
new System.IO.StreamReader("C:\\Users\\M.M.S.I\\Desktop\\test.txt");
string myString = myFile.ReadToEnd();
myFile.Close();
// Display the file contents.
//Console.WriteLine(myString);
char rc = (char)10;
String[] listLines = myString.Split(rc);
List<List<int>> listArrays = new List<List<int>>();
for (int i = 0; i < listLines.Length; i++)
{
List<int> array = new List<int>();
String[] listInts = listLines[i].Split(' ');
for(int j=0;j<listInts.Length;j++)
{
if (listInts[j] != "\r")
{
array.Add(Convert.ToInt32(listInts[j]));
}
}
listArrays.Add(array);
}
foreach(List<int> array in listArrays){
foreach (int i in array)
{
Console.Write(i + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
答案 4 :(得分:0)
using System.IO;
using System.Linq;
string filePath = @"D:\Path\To\The\File.txt";
List<int[]> listOfArrays =
File.ReadLines(path)
.Select(line => line.Split(' ').Select(s => int.Parse(s)).ToArray())
.ToList();
既然你提到它是你第一次用C#编程,那么这个版本可能更容易理解;过程与上述过程相同:
using System.IO;
using System.Linq;
string filePath = @"D:\Path\To\The\File.txt";
IEnumerable<string> linesFromFile = File.ReadLines(path);
Func<string, int[]> convertStringToIntArray =
line => {
var stringArray = line.Split(' ');
var intSequence = stringArray.Select(s => int.Parse(s)); // or ....Select(Convert.ToInt32);
var intArray = intSequance.ToArray();
return intArray;
};
IEnumerable<int[]> sequenceOfIntArrays = linesFromFile.Select(convertStringToIntArray);
List<int[]> listOfInfArrays = sequenceOfIntArrays.ToList();