如何从文件动态创建对象?

时间:2013-04-20 14:43:10

标签: c# arrays class dynamic

我正在读这样的文件,有这样的多行。

“标题,名称,东西,什么,什么”

如何使用这些变量动态创建新对象

我已经拆分了它 -

while (!reader.EndOfStream)
{
    lineFromFile = reader.ReadLine();

    split = lineFromFile.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

}

我的班级名为模块。只是不知道如何动态地这样做,因为我不知道ETC文件中有多少个模块。

1 个答案:

答案 0 :(得分:2)

创建List<Module>并添加从您的文件中读取的所有项目:

List<Module> modules = new List<Module>();
while (!reader.EndOfStream)
{
    lineFromFile = reader.ReadLine();

    split = lineFromFile.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

    var newModule = new Module();
    newModule.Property1 = split[0];
    newModule.Property2 = split[1];

    // (...) //

    modules.Add(newModule);

}

或使用LINQ:

var modules = (from line in File.ReadAllLines("fileName")
               let parts = line.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
               select new Module() {
                   Property1 = parts[0],
                   Property2 = parts[1],
                   Property3 = parts[2],
               }).ToList();