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);
но не знам къде е и каква е.
Подчертава ми 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();
}
}
}
}
phoneBook = phoneBook.OrderBy(x => x.Keys);
Трябва да присвоиш резултата от сортировката някъде.
Колегата е прав трябва и да запишеш резултата от сортирането. За да ти е по-лесно когато задържиш мишката върху името на метода можеш да видиш какви параметри изисква и съответно какъв е типа на връщаната му стойност. Ако е void не трябва да записваш резултата.