如何在c#中将一列数据放入列表中
本文关键字:数据 一列 列表 | 更新日期: 2023-09-27 18:01:51
我想为c# windows表单应用程序提供一些指导,以便能够将一整列的数字放入列表中,数据将是文本基础,例如它将包含4列,如下所示:
100 200 300 400
100 200 300 400
101 292 83 7312
我可以把整个文本放到一个列表中,但是我想要有4个不同的列表,如果有意义的话,把每一列放到它自己的列表中。
我是否必须读取每一行,并以某种方式将分割然后添加到列表中?
p。我不期望代码只是可能是最好的方法能够做到这一点,如果我在正确的轨道上?
我不会将这些值读入单独的列表中。如果您维护单独的列表,则需要担心保持所有列表同步。我将创建一个对象,您可以使用它来保存一行中的所有信息。
public class Entry
{
// give meaningful names to the column values
public int Column1 { get; set; }
public int Column2 { get; set; }
public int Column3 { get; set; }
public int Column4 { get; set; }
// overriden to make re-constructing the line for the file easier
public override string ToString()
{
// assuming tab as the delimiter, replace with whatever you're using
return string.Format("{0}'t{1}'t{2}'t{3}", this.Column1, this.Column2,
this.Column3, this.Column4);
}
}
当你读取值时,你可以这样做:
var entries = new List<Entry>();
using (var fStream = File.OpenRead(fileLocation))
using (var reader = new StreamReader(fStream))
{
while (!reader.EOF)
{
var line = reader.ReadLine();
// assuming tab as the delimiter, replace with whatever you're using
var parts = line.Split(''t');
if (parts.Length != 4)
{
// whatever you need to do for error handling
// you could throw an error or just skip to the next line
continue;
}
entries.Add(
new Entry
{
// ideally you'd use int.TryParse to provide further error handling
Column1 = int.Parse(parts[0]),
Column2 = int.Parse(parts[1]),
Column3 = int.Parse(parts[2]),
Column4 = int.Parse(parts[4])
}
);
}
}
然后,如果你只需要与一个列值交互,你可以使用LINQ来查询你需要的值
var column1Values = from entry in entries
select entry.Column1;
你做对了。我个人喜欢File.ReadAllLines(@"yourTxtFile")
。在我看来,它使代码简单。
foreach(var line in File.ReadAllLines(@"yourTxtFile"))
{
// split and add to the respective lists here
}