1

Тема: List<T>: Сортування по унікальним елементам.

Хай. От є такий код

class ElementOfEquation
{
    public int index;
    public int value=int.MaxValue;

    public ElementOfEquation(int index)
    {
        this.index = index;
    }
}

class Equation
{
    public int side;
    public ElementOfEquation u1, v1;

    public Equation(ElementOfEquation u1, ElementOfEquation v1, int side)
    {
        this.u1 = u1;
        this.v1 = v1;
        this.side = side;
    }
}

Та список

List<Equation> equation;

Мені необхідно відсортувати цей список в напрямку зростання елементів

equation.u1.index

Але оці index'и можуть повторюватись, а треба, щоб були унікальними, ну тобто є отаке
0, 1, 2, 0, 0, 2, а треба щоб було 0, 1, 2. Чи можна це зробити за допомогою того, що вже написано? Ну типу отой Linq, чи все одно треба писати самому оті цикли?

2

Re: List<T>: Сортування по унікальним елементам.

Я правильно зрозумів, що вам треба відсортувати список і викинути всі дублі? Це 2 окремі дії - Sort і RemoveAll.
А до чого тут Linq - він же дозволяє вставляти в код елементи з різним представленням даних (SQL, XML і т.д.), а не сортувати...

3

Re: List<T>: Сортування по унікальним елементам.

koala написав:

Я правильно зрозумів, що вам треба відсортувати список і викинути всі дублі? Це 2 окремі дії - Sort і RemoveAll.
А до чого тут Linq - він же дозволяє вставляти в код елементи з різним представленням даних (SQL, XML і т.д.), а не сортувати...

ну я погано знаю, що таке той Linq, тому приймаю його за методи розширення такі як List<T>.OrderBy і т.д. хД Ну я вже розібрався зі своєю бідою.

4

Re: List<T>: Сортування по унікальним елементам.

ну я погано знаю, що таке той Linq, тому приймаю його за методи розширення такі як List<T>.OrderBy

Взагалі-то це і є метод розширення. ;-)

5

Re: List<T>: Сортування по унікальним елементам.

Wolf.dp написав:

ну я погано знаю, що таке той Linq, тому приймаю його за методи розширення такі як List<T>.OrderBy

Взагалі-то це і є метод розширення. ;-)

так я знаю..

6

Re: List<T>: Сортування по унікальним елементам.

Якось соромно нагадувати, але якщо ви ставили питання і знайшли відповідь, то непогано було б поділитися з майбутніми поколіннями...

7 Востаннє редагувалося FakiNyan (22.04.2014 12:19:35)

Re: List<T>: Сортування по унікальним елементам.

koala написав:

Якось соромно нагадувати, але якщо ви ставили питання і знайшли відповідь, то непогано було б поділитися з майбутніми поколіннями...

Так я зробив зовсім по іншому. Всього в мене було 4 унікальних елементи, а всі інші їх повторювали. І ці унікальні елементи мали індекси 0, 1, 2, 3. Тому я просто циклом пройшовся

for (int i = 0; i < rank; i++)
{
    Ui[i] = equations.Find((e) => { return e.u1.index == i; }).u1.value;
    Vi[i] = equations.Find((e) => { return e.v1.index == i; }).v1.value;
}

8

Re: List<T>: Сортування по унікальним елементам.

Теж варіант - це зветься "сортування підрахунком".