C# 将大文本文件读入具有特定格式的数组

C# 将大文本文件读入具有特定格式的数组,c#,C#,我有一个包含以下信息格式的文本文件: 1 1.2323232 2.2356 4.232 1.23664 2 1.344545 3 6.2356 7.56455212 etc.... 如何读取C#中的文件,将其解析为数组,然后对其进行处理?使用 例如,您只需将记录解析定义为: [DelimitedRecord("|")] public class Orders { public int OrderID; public string CustomerID; [Fi

我有一个包含以下信息格式的文本文件:

1 1.2323232 2.2356 4.232 1.23664  
2 1.344545  
3 6.2356 7.56455212   
etc....
如何读取C#中的文件,将其解析为数组,然后对其进行处理?

使用

例如,您只需将记录解析定义为:

[DelimitedRecord("|")]
public class Orders
{
   public int OrderID;

   public string CustomerID;
   [FieldConverter(ConverterKind.Date, "ddMMyyyy")]   public DateTime OrderDate;

   public decimal Freight;
}
FileHelperEngine engine = new FileHelperEngine(typeof(Orders));

// to Read use:
Orders[] res = engine.ReadFile("TestIn.txt") as Orders[];

// to Write use:
engine.WriteFile("TestOut.txt", res);
并按如下方式读取文件:

[DelimitedRecord("|")]
public class Orders
{
   public int OrderID;

   public string CustomerID;
   [FieldConverter(ConverterKind.Date, "ddMMyyyy")]   public DateTime OrderDate;

   public decimal Freight;
}
FileHelperEngine engine = new FileHelperEngine(typeof(Orders));

// to Read use:
Orders[] res = engine.ReadFile("TestIn.txt") as Orders[];

// to Write use:
engine.WriteFile("TestOut.txt", res);

您可以将分隔符更改为
&并适当地更新成员类型

嘿,您的代码看起来好像在位置1处有一个ID值。所以我创建了一些示例代码

private List<MyValues> Read(string fileName)
{
    var result = new List<MyValues>();
    var line = new string[] { };

    using (StreamReader sr = new StreamReader(fileName))
    {
        while (sr.Peek() > -1)
        {
            line = sr.ReadLine().Trim().Split(' ');

            var val = new MyValues();
            val.Id = Convert.ToInt32(line.ElementAt(0));

            for (int n = 1; n < line.Count(); n++)
            {
                val.Values.Add(Convert.ToDouble(line[n]));
            }

            result.Add(val);
        }
    }

    return result;
}

class MyValues
{
    public int Id = 0;
    public List<double> Values = new List<double>();
}
私有列表读取(字符串文件名)
{
var result=新列表();
变量行=新字符串[]{};
使用(StreamReader sr=新StreamReader(文件名))
{
while(sr.Peek()>-1)
{
line=sr.ReadLine().Trim().Split(“”);
var val=新的MyValues();
val.Id=转换为32(第0行元素);
对于(int n=1;n
至少您尝试过解决它吗?用所需数据发布示例数组。不清楚您是希望每一行都有一个数组索引,还是希望每一行都有不同的索引?我不知道对您来说“大”是什么。根据文件的大小,最好小心使用内存存储所有行的数组,而不是直接处理它的序列(如写入db…)。