Loading...
MihailNMihaylov avatar MihailNMihaylov 0 Точки

OrderBy(); азбучен ред

Здравейте имам домашно в което в един от случайте на if-а трябва да подреда речник по азбучен ред

 if (text[0] == "ListAll")
                {
                    phoneBook.OrderBy(x => x);
                    foreach (var phone in phoneBook)
                    {
                        Console.WriteLine($"{phone.Key} -> {phone.Value}");
                    }
                }

 

грешката ми е при командата

phoneBook.OrderBy(x => x);

но не знам къде е и каква е.

0
Fundamentals Module
StefkaVasileva avatar StefkaVasileva 250 Точки

Трябва да посочиш дали ще сортираш по ключ или стойност. В твоя случай типа данни на x ще ти е равен на KeyValuePair. Дава ти грешка защото във функцията няма как да сортираш този тип данни. Опитай OrderBy(x => x.Keys); или Values, в зависимост от целите.

0
MihailNMihaylov avatar MihailNMihaylov 0 Точки

Подчертава ми Keys като грешка. Ето го целия код, задачата е в последния If -   if (phoneBook.ContainsKey(text[1])) да ми ги подреди по азбучен ред ама нещо не става.

 

 

namespace dectionary
{
    using System;
    using System.Collections.Generic;
    using System.Linq;

    public class Program
    {
        public static void Main()
        {
            var text = Console.ReadLine()
                .Split(' ')
                .ToArray();

            var phoneBook = new Dictionary<string, string>();

            while (text[0] != "END")
            {
                if (text[0] == "A")
                {
                    phoneBook[text[1]] = text[2];
                }

                if (text[0] == "S")
                {

                    if (phoneBook.ContainsKey(text[1]))
                    {
                        Console.WriteLine($"{text[1]} -> {phoneBook[text[1]]}");
                    }
                    else
                    {
                        
                        Console.WriteLine($"Contact {text[1]} does not exist.");
                        
                    }
                    
                }

                if (text[0] == "ListAll")
                {
                    phoneBook.OrderBy(x => x.Keys);
                    foreach (var phone in phoneBook)
                    {
                        Console.WriteLine($"{phone.Key} -> {phone.Value}");
                    }
                }

                  text = Console.ReadLine()
                                .Split(' ')
                                 .ToArray();
            }


        }
    }
}
 

0
Wencii avatar Wencii 90 Точки

phoneBook = phoneBook.OrderBy(x => x.Keys); 

Трябва да присвоиш резултата от сортировката някъде.

1
StefkaVasileva avatar StefkaVasileva 250 Точки

Колегата е прав трябва и да запишеш резултата от сортирането. За да ти е по-лесно когато задържиш мишката върху името на метода можеш да видиш какви параметри изисква и съответно какъв е типа на връщаната му стойност. Ако е void не трябва да записваш резултата.

0
Iliev88 avatar Iliev88 39 Точки

Ползвай направо SortedDictionary и си свиркай. :)

0
MihailNMihaylov avatar MihailNMihaylov 0 Точки

Стана много Ви благодаря !

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