从两个列表中选择不同的

时间:2016-02-28 21:35:06

标签: c# asp.net

我有两个列表列表内容listearticle和这个列表的代码:

 model = (
     from article in db.Article
     select new
     {
        ID = article.ID,
        ARTICLE = article.CODEARTICLE,
        PRIX= article.PRIX,
        STOCK=article.STOCK,
        IMAGE = article.Image,
        DESCRIPTION= article.REFERENCE,
     });

和另一个内容列表约定,这是代码:

  var query = (
         from article in db.convention
         select new
         {
              ID = article.ID,
              ARTICLE = article.CODEARTICLE,
              PRIX = article.Prix,
         });

我想要列出这样的列表列表:

foreach(模型中的动态aa)             {

            foreach (dynamic aa1 in list1)
            {
                if (aa.ARTICLE == aa1.ARTICLE) 
                {
                    aa.PRIXVHT = aa1.PRIXVHT;
                }
            }
        }

当list1中存在此文章时,有人可以帮我编辑PRIXVHT并感谢您的帮助 错误显示是附加信息:属性或索引器'<> f__AnonymousType3.PRIXVHT'无法分配 - 它是只读的 我知道这只是阅读只读但我需要编辑它我该怎么做

N.B /我必须在这两个列表中使用类似于foreach的表格

1 个答案:

答案 0 :(得分:5)

您可以将db.Article加入db.convention,然后选择article.PRIX,如果query.PRIX为空。

from articleA in db.Article
join articleC in db.convention on articleC.ID equals articleA.ID into temp
from query in temp.DefaultIfEmpty()
select new
 {
    ID = articleA.ID,
    ARTICLE = articleA.CODEARTICLE,
    PRIX = (query== null ? articleA.PRIX : query.PRIX),
    STOCK = articleA.STOCK,
    IMAGE = articleA.Image,
    DESCRIPTION = articleA.REFERENCE,
 });