Как сравнить два List? - C#

Узнай цену своей работы

Формулировка задачи:

Есть класс
Листинг программы
  1. public class DB
  2. {
  3. public string vopros { get; set; }
  4. public string otvet { get; set; }
  5. public string url { get; set; }
  6. }
Есть два list
Листинг программы
  1. List<DB> list1 = new List<DB>();
  2. List<DB> list2 = new List<DB>();
Как сравнить эти два list? чтобы например в list3 были те элементы которые есть в первом и нет во втором? Сравнивать надо по полю vopros.

Решение задачи: «Как сравнить два List

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApplication8
  6. {
  7.     public class DB
  8.     {
  9.         public string vopros { get; set; }
  10.         public string otvet { get; set; }
  11.         public string url { get; set; }
  12.         public override bool Equals(object obj)
  13.         {
  14.             var objDB = obj as DB;
  15.             if (objDB == null) return false;
  16.  
  17.             return otvet == objDB.otvet && vopros == objDB.vopros && url == objDB.url;
  18.         }
  19.     }
  20.  
  21.     class Program
  22.     {
  23.         static void Main(string[] args)
  24.         {
  25.             var list1 = new List<DB>() { new DB() { otvet = "sdfsdf" } };
  26.             var list2 = new List<DB>() { new DB() { otvet = "sdfsdf" } };
  27.  
  28.             var isNoEquals = list1.Any(x => !list2.Contains(x));
  29.  
  30.             if (!isNoEquals) Console.WriteLine("Списки равны.");
  31.             else Console.WriteLine("Списки не равны.");
  32.             Console.ReadKey();
  33.         }
  34.     }
  35. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы