我如何LINQify这个?

Luk*_*uke 3 .net c# linq

有没有办法用LINQ清理这种类型的循环?

  List<Car> result;
  List<string> makes;
  List<string> models;

  for (int i = 0; i < makes.Count() && i < models.Count(); i++)
  {
    result.Add(new Car() { Make = makes[i], Model = models[i] });
  }
Run Code Online (Sandbox Code Playgroud)

基本上我正在寻找一些方法来将单个字段的多个数组整理成由这些字段组成的单个对象数组.

Bra*_*ger 7

你可以使用Enumerable.Range,像这样:

List<Car> result = Enumerable.Range(0, Math.Min(makes.Count, models.Count))
    .Select(i => new Car { Make = makes[i], Model = models[i] }).ToList();
Run Code Online (Sandbox Code Playgroud)

如果makesmodels始终包含相同数量的项,则可以使用更紧凑的语法:

List<Car> result = makes.Select((make, i) => new Car { Make = make, Model = models[i] }).ToList();
Run Code Online (Sandbox Code Playgroud)