如果要说的话,我们有一个带有序列号的列表,另一个带有产品的列表,这是为每个产品分配一个序列号的最快(也更优雅)的方法?
可以使用经典版本:
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在一起?
答案 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;
}
这实际上不是最安全的事情,但可以在这里使用。