Заменить элементы одной коллекции на элементы другой коллекции - C#
Формулировка задачи:
Всем привет, у меня такой вопрос: есть 2 коллекции:
Как можно без всяких циклов заменить элементы коллекции list1 на элементы коллекции list2 которые совпадают по id ?
и чтоб остальные элементы list1, которые не совпали с другими остались бы в ней, есть ли какой-нибудь самый быстрый способ?
Листинг программы
- List<Person> list1 = new List<Person>
- {
- new Person
- {
- name = "Jon",
- id = 1
- },
- new Person
- {
- name = "Marc",
- id = 2
- },
- new Person
- {
- name = "Alex",
- id = 3
- },
- new Person
- {
- name = "Jeffri",
- id = 4
- },
- new Person
- {
- name = "Adam",
- id = 5
- },
- };
- List<Person> list2 = new List<Person>
- {
- new Person
- {
- name = "Pavel",
- id = 1
- },
- new Person
- {
- name = "Oleg",
- id = 2
- },
- new Person
- {
- name = "Denis",
- id = 3
- },
- };
Решение задачи: «Заменить элементы одной коллекции на элементы другой коллекции»
textual
Листинг программы
- using System.Linq;
- static class Program
- {
- static void Main()
- {
- var list1 = new[] { "Jon", "Marc", "Alex", "Jeffri", "Adam" }
- .Select((name, index) => new Person { id = index + 1, name = name })
- .ToList();
- var list2 = new[] { "Pavel", "Oleg", "Denis" }
- .Select((name, index) => new Person { id = index + 1, name = name })
- .ToList();
- var result = list1.Select(person =>
- list2.SingleOrDefault(p => p.id == person.id) ?? person);
- }
- class Person
- {
- public string name { get; set; }
- public int id { get; set; }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д