我有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?
答案 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对象?