C#中如何逐行读取txt中的数据并赋值到一维数组中。

我的文本文件是每行一个整数,希望编写一个函数将文件中的数字逐行读入一个字符串数组中再转化成数字数组。可以随时补充问题。特别好可以加分。

(1)文本文件中的数据按行存放,每行一个数据,数据的数量不定,可多可少。从文本文件中读入的数据并转换后,先存放泛型集合List<T>,最后再将List<T>转换成一维数组。

(2)实现代码:文本文件 D:\data.txt 中存放的数据为浮点类型,每行一个数据

using System;
using System.Collections.Generic;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"d:\data.txt";
            
            // 从数据文件读取数据
            float[] values = GetDataFromFile(filePath);
            
            // 显示数据
            for (int i = 0; i < values.Length; i++)
            {
                Console.WriteLine(values[i]);
            }

            Console.WriteLine("按Enter键退出");
            Console.ReadLine();
        }

        static float[] GetDataFromFile(string datafilePath)
        {
            // 创建泛型列表
            List<float> list = new List<float>();

            // 打开数据文件 D:\data.txt逐行读入
            StreamReader rd = File.OpenText(datafilePath);
            string line;
            while ((line = rd.ReadLine()) != null)
            {
                // 将读入的数据转换成float类型值
                float result;
                if (float.TryParse(line, out result))
                {
                    // 转换成功,加入到泛型列表
                    list.Add(result);
                }
                else
                {
                    // 转换失败,显示错误提示
                    Console.WriteLine("数据格式错误!");
                }
            }
            // 关闭文件
            rd.Close();

            // 将泛型列表转换成数组
            return list.ToArray();
        }
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-05
只给最经典的。楼上的些方法都不能满足“逐行”这两个字
public IEnumerable<string> GetStringArray()
{
StreamReader sr = new StreamReader("文件物理路径");
string str = null; string temp = null;
while ((temp = sr.ReadLine()) != null)
{
// System.Threading.Thread.sleep(3000);
yield return temp;
}
}本回答被提问者和网友采纳
第2个回答  2013-01-29
string[] strs = System.IO.File.ReadAllLines(Server.MapPath("/l.txt"), System.Text.Encoding.Default);
int[] numbers = new int[strs.Length];
int i = 0;
foreach (string str in strs)
{
numbers[i] = int.Parse(str);
i++;
}

全部手打 给分啊
第3个回答  2013-01-29
var lines = File.ReadAllLines("filepath").ToList();这个是你要的字符串的数组
var intArr = lines.ConvertAll(o=> (int)o);//这是你要的数字类型的字符串
纯手打,没测过,应该没问题
相似回答