Loading...
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Separator appearing before the first word in a list

Имам следния код:
 

char[] separators = ".,:;()[]\"'\\/!? ".ToArray();
            List<string> words = Console.ReadLine().ToLower().Split(separators).ToList();
            var shortWords = words.Where(x => x.Length < 5);
            var ordered = shortWords.OrderBy(x => x).Distinct();
            Console.WriteLine(string.Join(", ", ordered));

Подавам му следния стринг (без кавичките):
"In SoftUni you can study Java, C#, PHP and JavaScript. JAVA and c# developers graduate in 2-3 years. Go in!"
Резултатът е, че разделителят ", " се печата преди първият елемент от листа ordered. Открих, че преблемът е в OrderBy, но пак не разбирам защо се получава това.
Any ideas?

 

0
Programming Fundamentals
AntyfrizZz avatar AntyfrizZz 238 Точки
Best Answer

Здравей,

 

Даваш линк към Джъджа, но не успях да намеря условието на проблема. Следващия път може и към дего да оставиш линк.

Ще се ориентирам по кода ти. Опитай да си напишеш сплита по този начин 

List<string> words = Console.ReadLine().ToLower().Split(separators, StringSplitOptions.RemoveEmptyEntries).ToList();

Ако не се лъжа,  в момента ако имаш няколко интервала един след друг, то като сплитне по единичен интервал, останалите ще бъдат отчетени като думи. Това StringSplitOptions.RemoveEmptyEntries ще ги зачисти.

var ordered = shortWords.OrderBy(x => x).Distinct(); ще подреди резултата по азбучен ред, като махне повтарящите. Това ли трябва да стане?

 

Поздрави!

1
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Да, предполагах, че нещо подобно се случва и наистина StringSplitOptions.RemoveEmptyEntries решава проблемите. Споменаха го на курса, но ми иглеждаше грозно и реших да не го запомня.
 

Линк към отделните задачи не виждам, а условията на всички могат да се свалят от тук, Strings, Dictionaries, Lambda and LINQ лекцията. Освен това проблемът бе само с интервала и сметнах, че кодът, който съм предоставил, заедно с входа, са достатъчни.

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