Сравните 2 списка и уменьшите количество получаемого списка - PullRequest
0 голосов
/ 06 июня 2019

У меня 2 списка

grpoList

enter image description here

У меня есть вторая именованная сборка

enter image description here

У меня есть следующий код

grpoList = grpoList.Where(c => assembly.Exists(cr => cr.ItemCode == c.ItemCode)).ToList();

Возвращает

enter image description here

Как мне изменить код так, чтобы строка DocEntry 393 по результатам имела количество 2 вместо 4?

Ответы [ 2 ]

4 голосов
/ 06 июня 2019

Вы, вероятно, хотите выполнить соединение между списком и выбрать из него обязательные поля, например

var data = grpoList.Join(assembly,
                                x => x.ItemCode,
                                y => y.ItemNo,
                                (x, y) => new 
                                 { 
                                   DocEntry = x.DocEntry, 
                                   LineNum = x.LineNum,
                                   CarCode = x.CarCode, 
                                   ItemCode = x.ItemCode,
                                   OpenQty = y.OpenQty,
                                   DocDate = x.DocDate
                                  }).ToList();
0 голосов
/ 06 июня 2019

мы можем использовать соединения linq для создания пользовательских выходных данных:

var query = from c in grpoList
            join cr in assembly
                 on c.ItemCode equals cr.ItemCode
            select new
            {
                c.DocEntry,
                c.LineNum,
                c.CarCode, 
                c.ItemCode,
                OpenQty = c.OpenQty - cr.OpenQty,
                c.DocDate
            };

Сохраняя имена c и cr такими же, как ваш вопрос, чтобы вы могли легко их понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...