将单个结果存储为List<>来自循环

时间:2017-09-16 13:38:46

标签: c# asp.net-mvc

请仔细检查Part1。变量“singleItem”包含每个Ids循环期间的项目。但我的目标是将此“singleItem”变量转换为项目列表。所以我可以在Part2

这样的另一种方法中使用这个“singleItem”

第1部分:

foreach (int Id in Ids)
{
    var singleItem = ctx.SingleScannedItems.FirstOrDefault(x => x.SingleScannedItemId == Id);
}

2部分:

public string MyMethod(List<singleItem> items)
{
    //do something with items
}

2 个答案:

答案 0 :(得分:1)

您可以使用Contains方法查询SingleScannedItemId属性值与Ids集合中的值匹配的所有项目。

var filteredItems = ctx.SingleScannedItems
                       .Where(x => Ids.Contains(x.SingleScannedItemId)).ToList();

您现在不需要循环,因为您要查询所需的所有项目。

变量filteredItems将是SingleScannedItem的列表。您可以将其传递给接受集合的方法。

答案 1 :(得分:0)

您不需要循环,检查 Ids 列表,以下内容可行。

List<singleItem> items = ctx.SingleScannedItems
                .Where(x => Ids.Contains(x.SingleScannedItemId).ToList();

MyMethod(items);