我们可以使用通用列表而不是对象数组C#

Sri*_*ddy 2 c# arrays generics generic-list

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++;
  }
}
Run Code Online (Sandbox Code Playgroud)

这里我不知道数组的长度.需要它动态取决于总条件是真的.使用通用列表是否有任何有效的方法?如果是这样,怎么办?

Eri*_*ert 5

您的编码风格是合理和常见的,但请注意它是多么必要.你说的是"绕过这个循环,改变这个集合,改变这个变量",构建你想要的机器.当给出选择时,我更喜欢以声明式样式编码,并让编译器为我构建机器.我倾向于像这样写你的程序:

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();
Run Code Online (Sandbox Code Playgroud)

让编译器担心循环和变量等等; 你可以专注于语义而不是机制.