【问题标题】:How to make list from two or more arrays in C# using LinQ? [duplicate]如何使用 LinQ 从 C# 中的两个或多个数组创建列表? [复制]
【发布时间】:2017-11-15 06:10:22
【问题描述】:

我有两个字符串说cityIdscityNames

cityIds="1,2,3"
cityNames="Pune,Mumbai,Surat"

我有一堂课说City.cs

public class City
{
    public int CityId { get; set; }
    public string CityName { get; set; }
}

来自cityIdscityNames 我想创建列表。

如果我有这样的输入

cityIds="1,2,3"
cityNames="Pune,Mumbai,Surat"

我想要这样的输出

list[0]=CityId=1,CityName="Pune"
list[1]=CityId=2,CityName="Mumbai"
list[2]=CityId=3,CityName="Surat"

我试过了

var listOfIds = cityIds.Split(',');
var listOfNames = cityNames.Split(',');
for(int i = 0; i < listOfIds.Count; i++)
{
     listOfDealerCities.Add(new City()
     {
          CityId = Int32.Parse(listOfIds[i]),
          CityName = listOfNames[i]
     });
}

有没有更好的方法来做到这一点,比如使用 LINQ?

【问题讨论】:

    标签: c# linq data-structures


    【解决方案1】:
    List<City> listOfDealerCities = listOfIds.Select<string, City>(
    (t, i) => new City()
    {
        CityId = Int32.Parse(t),
        CityName = listOfNames[i]
    })
    .ToList();
    

    【讨论】:

      【解决方案2】:

      您可以为此使用 Linq 的 Zip 方法:

      listOfDealerCities.AddRange(listOfIds.Zip(
      listOfNames, (id, name) => new City() 
      {
          CityId = int.Parse(id), CityName = name 
      }));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多