我必须从包含以下格式的文本文件中读取
PRODUCTID PRODUCTNAME CUSTOMERID CUSTOMERNAME AMOUNT.
文本文件包含11行,对于每一行,我必须存储每个例如。 productid为一个字符串,productname为一个字符串。
我试过这样只存储每行的长度..
List<string> list = new List<string>();
using (var reader = new StreamReader(@"Budget.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
list.Add(line);
}
}
编辑:创建一个包含数据的类
答案 0 :(得分:1)
创建一个展示文件行的类,如下所示:
public class Procuct {
public string ProductId {get;set;}
public string ProductName {get;set;}
public string CustomerId {get;set;}
public string CustomerName {get;set;}
public string Amount{get;set;}
}
然后创建一个产品列表来存储它们:
List<Procuct> list = new List<Procuct>();
using (var reader = new StreamReader(@"Budget.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
var temp = line.Split(" ");
list.Add(new Product{
ProductId = temp[0],
ProductName = temp[1],
CustomerId = temp[2],
CustomerName = temp[3],
Amount = temp[4]
});
}
}
存储后,您可以使用LINQ获取所需的信息。
答案 1 :(得分:0)
您必须使用TextFieldParser Class,它用于将分隔的文本lignes解析为列
using System;
using Microsoft.VisualBasic.FileIO;
class Program
{
static void Main()
{
using (TextFieldParser parser = new TextFieldParser("C:\\csv.txt"))
{
parser.Delimiters = new string[] { " " };
while (true)
{
string[] parts = parser.ReadFields();
if (parts == null)
{
break;
}
Console.WriteLine("{0} field(s)", parts.Length);
}
}
}
}
中有一些有用的示例
答案 2 :(得分:-1)
您可以使用下面的代码来获得您想要的内容
static void Main(String[] args) {
var allRecords = new List<Record>();
foreach (var line in File.ReadLines("Budget.txt")) {
allRecords.Add(new Record(line));
}
}
public class Record {
public string ProductId { get; private set; }
public string ProductName { get; private set; }
public string CustomerId { get; private set; }
public string CustomerName { get; private set; }
public decimal Amount { get; private set; }
public Record(string line) {
var items = line.Split();
ProductId = items[0];
ProductName = items[1];
CustomerId = items[2];
CustomerName = items[3];
Amount = Convert.ToDecimal(items[4]);
}
public override String ToString() {
return $"ProductId:{ProductId}, ProductName:{ProductName}, CustomerId:{CustomerId}, CustomerName:{CustomerName}, Amount:{Amount}";
}
}
由于您的问题不是很明确,我认为您的文件格式如以下示例所示
10 Enchiladas 27 John Doe 15.00
11 HotDogs 27 John Doe 5.00
12 Burgers 29 Jane Doe 10.00
.
.
.
and so on