Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用LinQ从C#中的两个或多个数组生成列表?_C#_Linq_Data Structures - Fatal编程技术网

如何使用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 
}));