Есть класс
class Nomenclatura
{
public int Id { get; set; }
public string Razdel { get; set; }
public string Proizvoditel { get; set; }
public string IdTovara { get; set; }
public string Nazvanie { get; set; }
public string Url { get; set; }
}
Есть два List<Nomenclatura>.
var list1 = new List<Nomenclatura>();
list1.Add(new Nomenclatura { Id = 1, IdTovara = "3" });
var list2 = new List<Nomenclatura>();
list2.Add(new Nomenclatura { Id = 2, IdTovara = "2" });
list2.Add(new Nomenclatura { Id = 1, IdTovara = "3" });
Хочу получить на выходе элементы которые есть в list2
и нет в list1
. Для этого использую Except
. Всё хорошо но на данный момент у меня есть сравнение только по одному свойству, а мне хочется по нескольким. Я делал так, но скорость вообще ниочём
var differences = list2.Where(l2 =>
!list1.Any(l1 => l1.Id == l2.Id&& l1.IdTovara== l2.IdTovara)).ToList();
internal class MyComparer : IEqualityComparer<Nomenclatura>
{
public bool Equals(Nomenclatura x, Nomenclatura y)
{
if (string.Equals(x.IdTovara, y.IdTovara, StringComparison.OrdinalIgnoreCase)&&
string.Equals(x.Nazvanie, y.Nazvanie, StringComparison.OrdinalIgnoreCase)&&
string.Equals(x.Proizvoditel, y.Proizvoditel, StringComparison.OrdinalIgnoreCase))
{
return true;
}
return false;
}
public int GetHashCode(Nomenclatura obj)
{
return obj.IdTovara.GetHashCode() ^ obj.Nazvanie.GetHashCode() ^ obj.Proizvoditel.GetHashCode();
}
}
А вот использование его
var list1 = new List<Nomenclatura>();
list1.Add(new Nomenclatura { Id = 1, IdTovara = "3", Nazvanie = "naz", Proizvoditel = "proiz" });
var list2 = new List<Nomenclatura>();
list2.Add(new Nomenclatura { Id = 1, IdTovara = "2", Nazvanie = "naz", Proizvoditel = "proiz" });
list2.Add(new Nomenclatura { Id = 2, IdTovara = "3", Nazvanie = "naz", Proizvoditel = "proiz" });
var onlyDelhiResidents = list2.Except(list1, new MyComparer ()).ToList();
Дело такое, что на учебе было дано заданиеЗадача кажется не из простых и до решения до сего момента не могу прийти
Есть ли вообще понятие таблицы виртуальных функций в шарпе? Допустим есть иерархия классов, в классе на вершине иерархии виртуальный метод,...
ПомогитеКак сделать проверку, передается ли в метод хоть какое то числовое значение?
Недавно начал курс по Web ,а для сборки задания нуженNet Core SDK 1