Loading...
tsv_tsonev avatar tsv_tsonev 4 Точки

LINQ - Exercise

Здравейте, искам да попитам за решението на две от задачите от въпросното упражнение. Става въпрос за задача 2 и задача 4 и по конкретно какви функции използвате за филтрацията, която се иска по условие. И в двете задачи ползвам колекция от лист състоящ се от масиви от стрингове.

При задача 2 как сравнявате двата стринга (първото име ми е х[0], второто х[1])?

При задача 4 пак първото име ми е х[0], второто х[1] и пробвам с OrderBy и слец това с OrderByDescending, но пак не се получава:

students.OrderBy(x => x[1]).OrderByDescending(x => x[0])
            .ToList()
            .ForEach(x => Console.WriteLine("{0} {1}", x[0], x[1]));

Тагове:
0
C# Advanced
PlamenMetodiev avatar PlamenMetodiev 14 Точки

Здравейте колега,

На втората задача, просто правиш Where(x[1].CompareTo(x[0])). Аз самото сплитване го правя вътре в самата филтрация, но това не мисля, че има значение. Ето така изглежда моя код за филтрирането:

list.Where(x =>
            {
                string[] split = x.Split();
                if (split[1].CompareTo(split[0]) == 1)
                    return true;
                else return false;

            }).ToList().ForEach(x => Console.WriteLine(x));

За четвърта задача, мясля, че трябва да изпозлваш ThenByDescending()

Aз го правя подобно на лектора в лекцията, с един клас, който съдържа първото име и второто име. Имам лист от този клас и го филтрирам:
list.OrderBy(x => x.secondName)
                .ThenByDescending(x => x.firstName)
                .Select(x => $"{x.firstName} {x.secondName}")
                .ToList()
                .ForEach(x => Console.WriteLine(x));

Ако използваш ThenByDescending и все пак не става, бих го направил както правя втора задача. Вътре да сплитвам и при OrderBy да сравнявам второто име, а при ThenByDescending първото име.

0
tsv_tsonev avatar tsv_tsonev 4 Точки

Благодаря за съветите. Всичко се получи както трябва.

При задача 2 написах:

students.Where(x => (x[1].CompareTo(x[0]) == 1))
        .ToList()
        .ForEach(x => Console.WriteLine("{0} {1}", x[0], x[1]));,

а при четвърта е трябвало вместо OrderByDescending да ползвам ThanByDescending.

0
12/06/2016 18:59:37
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.