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, чи все одно треба писати самому оті цикли?

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

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 і т.д. хД Ну я вже розібрався зі своєю бідою.

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

4

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

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

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

5

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

Wolf.dp написав:

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

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

так я знаю..

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

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;
}
All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

8

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

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