迭代集合和.Add

时间:2015-02-05 03:14:36

标签: c# linq linq-to-sql collections

我试图将foreach循环数据集合存储在循环之外以供以后使用。

考虑以下foreach循环。

IList<DetailViewModel> storeAllLoopItems = new List<DetailViewModel>();

foreach (var item in _listOfItems)
{
   var items =
   (from a in context.Employee
       join b in context.Orders on a.Id equals b.Id
       join d in context.Notes on a.Id equals d.Id                            
       where a.Id == item.id
       select new DetailViewModel
       {
         Name = b.LegalName,
         Abbrev = c.Abbrev,
         TaxAmount = a.Amount,
       }).ToList();

      storeAllLoopItems.Add(items); //<<<ERROR
}

错误:

  

最佳重载方法匹配   &#39; System.Collections.Generic.List.Add(DetailViewModel)&#39;   有一些无效的论点

     

无法转换为&#39; System.Collections.Generic.List&#39;   到&#39; DetailViewModel&#39;

1 个答案:

答案 0 :(得分:1)

Add方法用于添加单个值。您需要手动将项添加到列表中,因为IList接口没有AddRange方法。或者将定义更改为具有List<DetailValueModel>方法的AddRange

Aslo,.ToList()不是必需的并浪费内存。