簡體   English   中英

當我有兩個以上元素時,如何改進列表下的添加項目

[英]How improve add items under the List, when i have more than 2 elements

下一個代碼可以使用,但是我想知道是否存在更好的方法來執行此功能。

使用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;
        }
    }

嘗試替換您當前的選擇

.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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM