如何使用LinQ从C#中的两个或多个数组生成列表?
我有两个字符串,分别是如何使用LinQ从C#中的两个或多个数组生成列表?,c#,linq,data-structures,C#,Linq,Data Structures,我有两个字符串,分别是cityid和cityNames cityIds="1,2,3" cityNames="Pune,Mumbai,Surat" 我有一门课是说City.cs public class City { public int CityId { get; set; } public string CityName { get; set; } } 我想从cityIds和cityNames创建列表 所以如果我有这样的输入 cityIds="1,2,3" cityNam
cityid
和cityNames
cityIds="1,2,3"
cityNames="Pune,Mumbai,Surat"
我有一门课是说City.cs
public class City
{
public int CityId { get; set; }
public string CityName { get; set; }
}
我想从cityIds
和cityNames
创建列表
所以如果我有这样的输入
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"
我想要这样的输出
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]
});
}
var listOfIds=cityIds.Split(',');
var listOfNames=cityNames.Split(',');
for(int i=0;i
有没有比使用LINQ更好的方法呢?listofDialercities=listOfIds.Select(
List<City> listOfDealerCities = listOfIds.Select<string, City>(
(t, i) => new City()
{
CityId = Int32.Parse(t),
CityName = listOfNames[i]
})
.ToList();
(t,i)=>新城()
{
CityId=Int32.Parse(t),
CityName=名称列表[i]
})
.ToList();
您可以使用Linq的Zip方法:
listOfDealerCities.AddRange(listOfIds.Zip(
listOfNames, (id, name) => new City()
{
CityId = int.Parse(id), CityName = name
}));