2016-03-01 6 views
0

Я хочу объединить два списка. Список списки содержат различные элементы друг к другу, и я хочу, чтобы объединить первый список второго списка:Объединить два списка моделей

var query = (

       from articleA in db.V_Article 
       join articleC in db.V_CLIENT_PRIX on articleA.ARTICLE equals articleC.Article 
       where articleC.CLIENT == Current_Client_Id 
       select new 
       { 
        ID = articleA.ID, 
        ARTICLE = articleA.ARTICLE, 
        PRIXVHT = articleC.PrixVHT, 
        REMISE = articleC.Remise, 
        STOCK = articleA.STOCK, 
        FOURNISSEUR = articleA.FRN, 
        FAMILLE = articleA.FAMILLE, 
        UNITE = articleA.Unite, 
        IMAGE = articleA.Image, 
        QUANTITE = 0, 
        CIN = Current_Client_Id, 
        REFERENCE = articleA.REFERENCE, 
        TVA = articleA.TVA, 
        PRIXVTTC = tarifclient == 0 ? articleA.PrixVTTC : tarifclient == 1 ? articleA.T1_PrixTTC : tarifclient == 2 ? articleA.T2_PrixTTC : articleA.T3_PrixTTC, 
       }); 


     list1 = query.ToList() ; 

и это второй список:

var article = (

       from articleA in db.V_Article 
       where !tabEnc.Contains(articleA.ID) 
       select new 
       { 
        ID = articleA.ID, 
        ARTICLE = articleA.ARTICLE, 
        PRIXVHT = articleA.PrixVHT, 
        REMISE = 0, 
        STOCK = articleA.STOCK, 
        FOURNISSEUR = articleA.FRN, 
        FAMILLE = articleA.FAMILLE, 
        UNITE = articleA.Unite, 
        IMAGE = articleA.Image, 
        QUANTITE = 0, 
        CIN = Current_Client_Id, 
        REFERENCE = articleA.REFERENCE, 
        TVA = articleA.TVA, 
        PRIXVTTC = tarifclient == 0 ? articleA.PrixVTTC : tarifclient == 1 ? articleA.T1_PrixTTC : tarifclient == 2 ? articleA.T2_PrixTTC : articleA.T3_PrixTTC, 
       }).ToList; 

Я хочу, чтобы объединить (конкатенация) эти два списка - как я могу это сделать?

+0

Можете ли вы объяснить (желательно на английском), что вы подразумеваете под «слиянием»? Вы хотите, чтобы результат имел одинаковое количество строк, но объединил некоторые значения или вы хотите, чтобы два набора были объединены (например, если у каждого из них было 10 строк, результат будет иметь 20 строк)? –

+2

Вы можете использовать «Союз»: var finalList = list1.Union (статья) –

+0

Или var final = list1.Concat (list2); если вы знаете, что не будет никаких данных об ошибках. – adaam

ответ

2

Попробуйте использовать метод Concat. Он возвращает новый список, включая дубликаты.

var results = list1.Concat(article); 

Также вы можете использовать Union если вам нужен новый список за исключением дубликатов.

var results = list1.Union(article); 

Кроме того, List имеет AddRange метод.

list1.AddRange(article); 
Смежные вопросы