Разница между двумя списками<object> linq
у меня есть два списка клиентского класса
public class Client { public int ClientID { get; set; } public string ClientName { get; set; } public string companyName { get; set; } public string companyLocation { get; set; } }
первый список для NewClient
и второе для олдклиента
мне нужно три списка
Недавно добавленные клиенты
Удаленные Клиенты
Общие Клиенты
я попробовал следующий способ, но мне нужен результат по ClientID и названию компании
как я могу добавить еще одно условие, чтобы получить разницу на основе этих двух значений
Я получаю добавленные и удаленные значения
но я не получаю обычных клиентов
Что я уже пробовал:
я попробовал с
List<Client> lstOld_Client = new List<Client>(); List<Client> lstNew_Client = new List<Client>(); Client C1 = new Client() { ClientName = "A", ClientID = 1, CompanyLocation = "Pune", CompanyName = "C1" }; Client C2 = new Client() { ClientName = "A", ClientID = 1, CompanyLocation = "Pune", CompanyName = "C2" }; lstNew_Client.Add(C1); lstNew_Client.Add(C2); lstOld_Client.Add(C1); var Added = lstNew_Client.Where(a => !lstOld_Client.Any(x => x.ClientID == a.ClientID && x.CompanyName == a.CompanyName)).ToList(); var deleted = lstOld_Client.Where(a => !lstNew_Client.Any(x => x.ClientID == a.ClientID && x.CompanyName == a.CompanyName)).ToList(); var commonElements = lstNew_Client.Where(a => lstOld_Client.Any(x => x.ClientID == a.ClientID && x.ClientName == a.ClientName)).ToList(); var OldTemplete = lstOld_Client.Where(a => commonElements.Any(x => x.ClientID == a.ClientID && x.ClientName == a.ClientName)).FirstOrDefault(); var NewTemplete = lstNew_Client.Where(a => commonElements.Any(x => x.ClientID == a.ClientID && x.ClientName == a.ClientName)).FirstOrDefault();
George Jonsson
Не должен
commonElements = NewClient.Где(а =&ГТ; oldClient.Любой(х => У Х.Параметр ClientID== а.Параметр ClientID)).Список();
быть
commonElements = CommonClient.Где(а =&ГТ; oldClient.Любой(х => У Х.Параметр ClientID== а.Параметр ClientID)).Список();
Тем не менее, попробуйте
commonElements = CommonClient.Где(а =&ГТ; oldClient.Любой(х => У Х.Параметр ClientID == а.Параметр ClientID и усилитель; & х."название" = = а."название")).Список();
(предполагая, что ваш LINQ работает нормально в противном случае)
kedar001
пожалуйста, проверьте мое обновленное "что я пробовал"
Я получаю правильный результат для добавленных и удаленных ,но не могу получить этот общий результат
я ожидаю, что "С1" будет общим