如何将CSV文件读取为int[]C#
本文关键字:int 读取 CSV 文件 | 更新日期: 2023-09-27 18:26:27
我有一个文件a.csv,它包含一个n乘n维的方阵,格式如下:
1,2,3
4,5,6
7,8,9
我想把它读成int[],类似于:
StreamReader csv = new StreamReader("a.csv");
int n = 3
string[] lines = new string[n];
int[] intlines = new int[n]
int q = 0;
bool exiting = false;
do
{
if (csv.ReadLine() != "")
{
exiting = true;
}
if (exiting == false)
{
lines[q] = (((csv.ReadLine()).Split(",")).ToString());
q++;
}
}
while (exiting == false);
Console.WriteLine("Finished Reading!");
System.Threading.Thread.Sleep(500);
int q2 = 0;
foreach (string s in lines)
{
Console.WriteLine("lines: {0}", s);
intlines[q2] = int.Parse(s);
}
foreach (int i in intlines)
{
Console.WriteLine("intlines: {0}", i.ToString());
}
Console.ReadKey();
目前,它有一些问题,因为编译器正在处理char[]的问题。无论如何,我该如何将水平线和垂直线读取为二维int[]?非常感谢。
试试这个:
using (var sr = new StreamReader("a.csv"))
{
var myArray = sr.ReadToEnd()
.Split(''n')
.SelectMany(s => s.Split(',')
.Select(x => int.Parse(x)))
.ToArray<int>();
foreach(var x in myArray)
Console.WriteLine (x);
}
您应该考虑在nuget和github上使用Josh Close的CSVhelperhttps://github.com/JoshClose/CsvHelper
这是一个很好的图书馆。
只是@Malik答案的另一个变体。
string[] data = File.ReadAllText(@"D:'code'cs'sample.txt")
.Split(new char[] { ',',''r',''n' });
int[] ints = data.Where(x => x.Count() != 0)
.Select(x => int.Parse(x)).ToArray();
foreach(var e in ints)
{
Console.WriteLine(e);
}