Read text data from file using LINQ

前端 未结 3 734
小蘑菇
小蘑菇 2021-02-03 16:24

I have following text file:

37 44 60
67 15 94
45 02 44

How to read all numbers from this file and save them into two-dimensional array, using L

相关标签:
3条回答
  • 2021-02-03 16:44

    Just to complete Jonathan's answer, here's how you could implement the Lines extension method :

    public static class TextReaderExtensions
    {
        public static IEnumerable<string> Lines(this TextReader reader)
        {
            string line;
            while((line = reader.ReadLine()) != null) yield return line;
        }
    }
    
    0 讨论(0)
  • 2021-02-03 16:48
    File.ReadAllLines(myFile)
        .Select(l => l.Split(' ').Select(int.Parse).ToArray()).ToArray();
    

    Or:

    List<int[]> forThoseWhoHave1GigFiles = new List<int[]>();
    using(StreamReader reader = File.OpenText(myFile))
    {
        while(!reader.EndOfStream)
        {
            string line = reader.ReadLine();
            forThoseWhoHave1GigFiles.Add(line.Split(' ')
                .Select(int.Parse).ToArray());
        }
    }
    var myArray = forThoseWhoHave1GigFiles.ToArray();
    

    And:

    File.ReadLines(myFile)
        .Select(l => l.Split(' ')
        .Select(int.Parse).ToArray())
        .ToArray();
    

    In .Net 4.0 and above.

    0 讨论(0)
  • 2021-02-03 16:58

    Do you mean something like this?

    StreamReader sr = new StreamReader("./files/someFile.txt");
    
          var t1 =
            from line in sr.Lines()
            let items = line.Split(' ')
            where ! line.StartsWith("#")
            select String.Format("{0}{1}{2}",
                items[1],
                items[2],
                items[3]);
    

    Take a look to this web: LINK

    0 讨论(0)
提交回复
热议问题