C# 如何使用linq分配两个列表和一个int来创建一个新对象的列表?

C# 如何使用linq分配两个列表和一个int来创建一个新对象的列表?,c#,linq,C#,Linq,我有: 列表键//这些列表大小相同 列出报告键//这些列表大小相同 int报告类型; 我想创建MyType的新列表: List<int> keys; //These lists are the same size List<int> reportKeys; //These lists are the same size int reportType; 列表 公共类MyType { 公共int密钥{get;set;} public int ReportKey{get;s

我有:

列表键//这些列表大小相同
列出报告键//这些列表大小相同
int报告类型;
我想创建MyType的新列表:

List<int> keys; //These lists are the same size
List<int> reportKeys; //These lists are the same size
int reportType;
列表
公共类MyType
{
公共int密钥{get;set;}
public int ReportKey{get;set;}
public int ReportType{get;set;}
}
我可以使用for循环来分配这些:

List<MyType>

public class MyType
{
    public int Key {get;set;}
    public int ReportKey {get;set;}
    public int ReportType {get;set;}
}
var objects=newlist();
对于(var i=0;i

有没有一种方法可以使用linq而不使用for循环?

您可以使用linq
Zip
()

样本如下:

var objects = new List<MyObject>();
for (var i = 0; i < keys.Count(); i++)
{
    objects.Add(new MyObject { Key = keys[i], ReportKey = reportKeys[i], ReportType = reportType };
}

您可以使用LINQ
Zip
()

样本如下:

var objects = new List<MyObject>();
for (var i = 0; i < keys.Count(); i++)
{
    objects.Add(new MyObject { Key = keys[i], ReportKey = reportKeys[i], ReportType = reportType };
}
尝试使用Linq的扩展方法:

var result = keys.Zip(reportsKey, 
                     (key, reportKey) => new MyObject 
                                                { 
                                                    Key = key, 
                                                    ReportKey = reportKey, 
                                                    ReportType = reportType 
                                                 })
                 .ToList();
尝试使用Linq的扩展方法:

var result = keys.Zip(reportsKey, 
                     (key, reportKey) => new MyObject 
                                                { 
                                                    Key = key, 
                                                    ReportKey = reportKey, 
                                                    ReportType = reportType 
                                                 })
                 .ToList();

抱歉,意外剪切。已粘贴。抱歉,意外剪切。已粘贴。或查看。或查看。