none
Как сравнить два List<T> RRS feed

  • Вопрос

  • Привет!

    1. Есть класс:

    public class PriceVolume

        {
            public PriceVolume(double pPrice, int pVolume)
            {
                Price = pPrice;
                Volume = pVolume;
            }
            public double Price;
            public int Volume;
        }

    2. Есть два списка:

    private List<PriceVolume> list1 = new List<PriceVolume>();
    private List<PriceVolume> list2 = new List<PriceVolume>();

    3. Есть способ заполнения списков:

     list1.Add(new PriceVolume(100, 1));
     list1.Add(new PriceVolume(110, 1));


     list2.Add(new PriceVolume(100, 1));
     list2.Add(new PriceVolume(110, 1));

     

    Как проверить эти списки на равенство? Метод list1.Equals(list2) всегда возвращает false.

    Существует ли какой нибудь стандартный метод сравнения при таком способе заполнения списков?

    27 февраля 2011 г. 9:06

Ответы

  • Простым перебором тут не обойтись, тк в списке у тебя содержатся указатели на разные области памяти и указатели будут разные. Поэтому придется писать свою перегрузку оператора ==, где ручками проверять равенство полей одного объекта другому и в зависимости от этого возвращать результат.


    E-mail: Svatoslav.Pankratov@gmail.com Blog: svyatoslavpankratov.blogspot.com
    • Помечено в качестве ответа Abolmasov Dmitry 1 марта 2011 г. 6:14
    27 февраля 2011 г. 10:04