我正在制作一个需要从文件中读取输入的程序(使用File.ReadAllLines()),我想为每个行创建一个对象。我遇到的问题是(文件中的行数)经常会发生变化,所以编译器不知道我需要实例化的对象数。
例如:
string str[] = File.ReadAllLines();
int n = str.Length;
此时我想实例化一个类的 n 对象,我该怎么做?
答案 0 :(得分:4)
假设你的类有一个构造函数来从字符串创建自己:
var myObjects = str.Select(x => new MyClass(x));
请注意,在您需要这些对象之前,这不会枚举。如果你想强制枚举,你可以这样做:
var myObjects = str.Select(x => new MyClass(x)).ToList();
示例构造函数:
public MyClass(string line)
{
//parse the line and set variables of MyClass
}
答案 1 :(得分:0)
像@DLeh所说或者你不需要字符串作为参数
string str[] = File.ReadAllLines();
int n = str.Length;
var items = Enumerable.Range(0, n).Select(x => new MyClass()).ToList();