有没有办法用LINQ清理这种类型的循环?
Listresult; List makes; List models; for (int i = 0; i < makes.Count() && i < models.Count(); i++) { result.Add(new Car() { Make = makes[i], Model = models[i] }); }
基本上我正在寻找一些方法来将单个字段的多个数组整理成由这些字段组成的单个对象数组.
你可以使用Enumerable.Range
,像这样:
Listresult = Enumerable.Range(0, Math.Min(makes.Count, models.Count)) .Select(i => new Car { Make = makes[i], Model = models[i] }).ToList();
如果makes
且models
始终包含相同数量的项,则可以使用更紧凑的语法:
Listresult = makes.Select((make, i) => new Car { Make = make, Model = models[i] }).ToList();