C#-将两个列表连接到一个配对值列表中

时间:2019-07-31 10:09:14

标签: c# asp.net-mvc

我有两个列表,我正尝试加入到我的应用程序的一个列表中,如下所示-

ID为1-10的平台ID。 值为10-100的百分比。 这些列表已经订购。

PlatformPercentages,这是我想加入以上列表的地方。这是我创建的PlatformPercentages(List<PlatformPercentage>)的列表,其中包含int PlatformId和double Percentage。

PlatformPercentages应该一起包含列表信息,就像这样-

1: 10
2: 20
3: 30 

我该怎么做?

感谢所有帮助!

ive尝试了嵌套的foreach循环,但无法正常工作。

var platformPercentages = new List<PlatformPercentage>();
foreach (var platformId in platformIds)
{
    foreach (var percentage in percentages)
    {
        var platformPercentage = new PlatformPercentage
        {
            PlatformId = platformId,
            Percentage = percentage,
        };
        platformPercentages.Add(platformPercentage);
    }
}

3 个答案:

答案 0 :(得分:4)

您可以使用Linq通过Zip函数在一个简单的行中完成此操作:

var platformIds = new List<int> { 1, 2, 3 };
var percentages = new List<int> { 10, 20, 30 };
var platformPercentages = platformIds.Zip(percentages, (id, pourcent) => new PlatformPercentage { PlatformId = id, Percentage = pourcent }).ToList();

答案 1 :(得分:0)

我假设platformIds列表和percents列表均是10条记录。

for(var i=0; i<platformIds.Count; i++){
        platformPercentages.Add(new PlatformPercentage{
                                      PlatformId = platformIds[i],
                                      Percentage = percentages[i],
                                 });
}

答案 2 :(得分:0)

使用单个for循环

for (int i = 0; i < platformIds.Count; i++)
        {
            platformPercentages.Add(new PlatformPercentage { Percentage = percentage[i], PlatformId = platformIds[i] });
        }