使用文本文件

时间:2016-06-15 08:00:51

标签: c# oop object

我有2个班,一个是“自行车”,另一个是“用户”。第一个具有以下属性:

private readonly int codeB;
private string name_parking_station;
int km_made;

和第二个:

private string name;
private int codeB;
private int utilization_duration;

这两个类都有带参数和getter / setter的构造函数。我的问题是:如何使用我创建的文本文件中的数据实例化两个类中的对象?而且,我如何将它们添加到2个不同的ListView-s?

2 个答案:

答案 0 :(得分:0)

您是否可以控制文本文件格式?如果是这样,您可以使用开箱即用的序列化。 You could also build your own custom serializer。也就是说,您可能需要重新考虑您的Array ( [0] => Array ( [id] => 1 [name] => John Smith ) [1] => Array ( [id] => 2 [name] => Jane Doe ) [2] => Array ( [email] => john@smith.com ) [3] => Array ( [email] => jane@doe.com ) ) 属性,因为这不会序列化。

From MSDN for standard XML Serialization:

readonly

答案 1 :(得分:0)

如果您的自行车行不包含那些'//'部分,只包含您的数据,则可以通过逐行读取文件并处理以下行来轻松创建Bicycle对象:

// let your class have an appropriate creator
internal Bicycle(int codeB, string name_parking_station, int km_made)
{
    this.codeB = codeB;
    this.name_parking_station = name_parking_station;
    this.km_made = km_made;
}

// In your line reader loop:
// lineRead contains the current line
var lineParts = lineRead.Split(' ').Where(item => !string.IsNullOrWhiteSpace(item)).ToArray();        

// lineParts now should contain 3 strings

if(lineParts.Length == 3)
{
    var bicycle = new Bicycle(int.Parse(lineParts[0]), lineParts[1], int.Parse(lineParts[2]));
    // add your new object to a collection of Bicycle objects
}

遗漏数据验证以保持简单。我建议你使用int.TryParse()。 如果我对线格式的假设不正确,请告诉我。 您希望如何在ListView中展示Bicycle对象?