将列表的每个值分配给另一个列表的值的最快方法

时间:2018-06-19 17:11:15

标签: c# performance collections

如果要说的话,我们有一个带有序列号的列表,另一个带有产品的列表,这是为每个产品分配一个序列号的最快(也更优雅)的方法?

可以使用经典版本:

 var serialNumbers = CreateSerialNumbers().ToList();
 var index = 0;
 foreach (var product in Products)
 {
     product.SerialNumber = serialNumbers[index];
     index++;
 }

for

for (int index= 0; index < Products.Count; index++)
{
    Products[index].SerialNumber = serialNumbers[index];
}

但是有更快/更优雅的方法吗?也许和Linq在一起?

1 个答案:

答案 0 :(得分:0)

我会这样做:

for (int index= 0; index < Products.Count; index++)
{
    Products[index].SerialNumber = serialNumbers[index];
}

...但是您需要确保serialNumbers[index]也没有超出范围。也许...

for (int index= 0; index < Products.Count; index++)
{
    if(serialNumbers.Count >= index
         Products[index].SerialNumber = serialNumbers[index];
    else
         index = Products.Count;
}

这实际上不是最安全的事情,但可以在这里使用。

相关问题