c# - 我如何对此进行 LINQify?

标签 c# .net 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] });
  }

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

最佳答案

您可以使用 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();

如果 makesmodels 总是包含相同数量的项目,您可以使用更紧凑的语法:

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

关于c# - 我如何对此进行 LINQify?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183856/

相关文章:

c# - 在构建 Linq-to-Sql 代码时强制 Entity Framework 不生成 NCLOB(模型优先)

c# - VSTO Outlook 2013 加载项 : is it possible to connect to a RESTful web-api?

c# - Entity Framework (.NET 完整框架)订购包括

c# - 将大字符串转换为 UTF-8

c# - C#.NET 中有没有办法将字符串分解为固定长度的子字符串?

c# - 数据绑定(bind)如何与 DataTable 一起工作?

c# - 在页面 PreInit 事件中访问 Asp.NET 控件

c# - LINQ 按日期间隔获取对象

c# - 禁用应用程序在 Windows 8 Metro 中休眠

c# - 性能计数器和远程机器