Найдите совпадающие поля объектов List и IEnumerable в C#C#

Место общения программистов C#
Ответить
Anonymous
 Найдите совпадающие поля объектов List и IEnumerable в C#

Сообщение Anonymous »

Существует долгий и утомительный способ выполнить задачу, которую я хочу выполнить, но я думаю, что должен быть способ использовать Linq или какой-либо другой, более аккуратный, более эффективный метод для достижения этой цели. У меня есть IEnumerable, назовем его People1 со свойствами firstName и LastName, у меня также есть List
под названием People2, а также со свойствами firstName и LastName.
Мне нужно хранить только людей1, где firstName и LastName значения людей2 совпадают со значениями людей1.
Этот псевдокод не работает, но он может лучше объяснить то, чего я надеюсь достичь, чем это многословное объяснение :
people3 = people1.Select(x => x.firstName IN (people2.firstName)
&& x.lastName IN (people2.lastName))

Я новичок в этом, поэтому единственный способ, который я придумал, - это перебирать элементы списка люди2, сравнивая людей1 и, если они совпадают, сохранить их в люди3. Это сработает, но я предполагаю, что есть более приятный способ сделать это, и я пытаюсь узнать что-то новое, поэтому решил выложить это, чтобы посмотреть, что придумают ваши великие умы. :)
ОБНОВЛЕНИЕ:
Поигравшись немного, я близок к этому, но не могу понять, как добавить совпадающие элементы в новый объект IEnumerable.
Вот код, который у меня есть, он не работает в строке «Добавить»:
IEnumerable people3 = null;

foreach(var person in people1)
{
if (people2.Exists(x => x.FirstName == people1.FirstName))
{
people3.Add(person);
}
}


Подробнее здесь: https://stackoverflow.com/questions/272 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»