class Student
{
public string ID { get; set; }
public string Name { get; set; }
}
Student[] students = new Student[10];
int j = 0;
for(int i=0; i < 100; i++)
{
if (some condition)
{
student[j].ID = anotherIDlist[i]; //some value from another list;
student[j].Name = anotherNamelist[i]; //some value from another list;
j++;
}
}
这里不知道数组长度。需要它动态取决于总条件是否为真。使用通用列表是否有任何有效的方法来做同样的事情?如果可以,怎么做?
最佳答案
您的编码风格合理且常见,但请注意它是多么迫切。你是说“绕过这个循环,改变这个集合,改变这个变量”,构建机器来做你想做的事。如果可以选择,我更喜欢以声明式 风格编写代码,并让编译器为我构建机器。我倾向于这样写你的程序:
var query = from i in Enumerable.Range(0, 100)
where some_condition
select new Student() { Id = ids[i], Name = names[i] };
var students = query.ToList();
让编译器担心循环和变量等等;您可以专注于语义而不是机制。
关于c# - 我们可以使用通用列表而不是对象数组 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554845/