如何将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[]?非常感谢。

如何将CSV文件读取为int[]C#

试试这个:

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);
}