2015-06-16 3 views
0

Следующий код является функциональным, но я хочу знать, существует ли лучший способ сделать эту функцию.Как улучшить добавление элементов под списком, когда у меня есть более 2 элементов

С помощью LINQ я получаю список с 4-х элементов, но мне нужно добавить эти элементы в списке ProposalItems, следующий код является тип списка

private class ProposalItems 
{ 
    public double Quantity { get; set; } 
    public double Price { get; set; } 
    public int Row { get; set; } 
    public double Total { get; set; } 
} 

И следующий код является метод:

internal List<ProposalItems> GetProposalItems(int tradeId, int contendantId) 
    { 
     using (var db = new Entities()) 
     { 
      //declare the list 
      List<ProposalItems> items = new List<ProposalItems>(); 
      //query in linq 
      var data = db.ES_SC_PropuestasPrecios 
       .Join(db.ES_SC_CatalogoConceptos, 
       prices => prices.renglon, 
       concept => concept.renglon, 
       (prices, concept) => new { ES_SC_PropuestasPrecios = prices, ES_SC_CatalogoConceptos = concept }) 
      .Where(w => w.ES_SC_CatalogoConceptos.idconcurso == tradeId && w.ES_SC_PropuestasPrecios.idconcursante == contendantId) 
      //select the items 
      .Select(s => new 
      { 
       Row = s.ES_SC_CatalogoConceptos.renglon, 
       Quantity = s.ES_SC_CatalogoConceptos.cantidad, 
       Price = s.ES_SC_PropuestasPrecios.preciounitario, 
       Total = s.ES_SC_PropuestasPrecios.importe 
      }).ToList(); 
      // loop to add the item in the list 
      foreach (var item in data) 
      { 
       items.Add(new ProposalItems { Row = (int)item.Row, Price = (double)item.Price, Quantity = (double)item.Quantity, Total = (double)item.Total }); 
      } 
      return items; 
     } 
    } 

ответ

0

Попробуйте заменить ваш текущий выбрать для этого

.Select(s => new ProposalItems { 
    Row = (int)s.ES_SC_CatalogoConceptos.renglon,, 
    Price = (double)s.ES_SC_PropuestasPrecios.preciounitario, 
    Quantity = (double)s.ES_SC_CatalogoConceptos.cantidad, 
    Total = (double)s.ES_SC_PropuestasPrecios.importe 
}).ToList(); 
+0

Спасибо @ МАРК-CALs, для помощи –

+0

Добро пожаловать! –