2017-08-02 91 views
0

请检查环波纹管。 “BulkScannedItemIds”是几个ID的数组,其循环来检索这些产品,并在“singleItems”存储,但问题是“singleItems”不是数组。这就是为什么它没有持有所有的价值。所以我想要的是将所有值存储到数组中。请指教我如何使这个(“singleItems”)数组简单的变量?所以它能够在运行循环后保存所有值?循环尽管在另一个阵列阵列和存储值

foreach (var BulkScannedItemId in BulkScannedItemIds) 
{ 
    var singleItems = ctx.BulkScannedItems.Where(x => x.UserSellerScanRequestId == id && x.BulkScannedItemId == BulkScannedItemId).ToList(); 
} 
+0

只要使用'ToArray的() '而不是'ToList()'有一个数组。 并删除foreach循环,它什么都不做,慢慢你的应用程序 – Yggraz

回答

2

可以使用LINQ做到这一点没有循环:

var singleItems = ctx.BulkScannedItems.Where(x => x.UserSellerScanRequestId == id && BulkScannedItemIds.Contains(x.BulkScannedItemId)).ToList() 

编辑:或者,如果你想要一个数组来调用ToArray的,而不是:

var singleItems = ctx.BulkScannedItems.Where(x => x.UserSellerScanRequestId == id && BulkScannedItemIds.Contains(x.BulkScannedItemId)).ToArray() 
+2

旁边除非你调用'.ToArray()'在这种情况下,它会被转换为一个数组...:o – Qpirate