Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

pavsavov avatar pavsavov 18 Точки

Въпрос относно конвертиране на strings[] в char[] чрез Lambda.

Здравейте.

Тъй като Lambda изразите не са ми силата,ще се опитам да обясня какво се опитвам да направя.

Имам вход от някакъв брой strings на един ред,разделени със space.

Това,което бих искал е всеки един отделен string да го превърна в char[],чрез Lambda израз.

Това,което успявам да постигна,чрез израза по-долу е да създам array,пълен с още array.

var firstLineString = Console.ReadLine().Split(' ').Select(x => x.ToCharArray());

Желанието ми е да мога да достъпя всеки един array[] и да продължа с неговата обработка.

Така както се случва,предполага записване на създадените char[] в отделна променлива,но не съм убеден как мога да го постигна това на същия ред.

Ще съм много благодарен за малко помощ и ще разясня допълнително,ако не съм описал добре,това което търся като резултат.

Благодаря предварително!

 


 

0
Fundamentals Module
k.sevov avatar k.sevov 1077 Точки

Както е кодът дотук си имаш IEnumerable колекция от char arrays и можеш да си ги обработваш по-натам със Select/Where, примерно ако искаш да ги завъртиш и след това да си ги направиш отново на стрингове може да стане с .Select(x => x.Reverse()).Select(x => string.Join("", x)) и .ToArray() накрая или каквото искаш да ги правиш. 

0
pavsavov avatar pavsavov 18 Точки

Примерно, ако те разбирам правилно, би трябвало нов стринг да се е създал,как мога да извикам някой от тези стрингове вече като продължа с програмта?

 

0
k.sevov avatar k.sevov 1077 Точки

Ако сложиш ToArray() накрая ще си имаш масив от стрингове и можеш да си ги викаш по индекс.

По-подробно идеята е, че Select взема всеки елемент от подадената му колекция, прилага му някаква трансформация (в ламбда функцията) и го вкарва в нова колекция, която ти се връща накрая като резултат. Ако следваме логиката на целия ред, в началото четем стринг от конзолата, след това го сплитваме на масив от отделни стрингове, след това Select взема всеки стринг и го прави на char[] и съответно ни връща колекция от char[]. Продължението от моя пример взема всеки от тях и го завърта, съответно връща колекция от обърнати char[]. Следващият Select взема всеки char[] и му слепва елементите в стринг, като накрая връща колекция от стрингове (залепените char[]) и тази колекция можем да си я направим на стандартен масив, лист или да си я foreach-ваме директно. 

0
29/10/2017 14:16:17
NikolayPopov avatar NikolayPopov 253 Точки

Не се създават нови стрингове, колекция от колекции от char имаш. Ако искаш да ги напревиш на колекция от стрингове 

var stringCollection = firstLineString .Select(x => new string(x.ToArray()))

0
29/10/2017 14:09:37
pavsavov avatar pavsavov 18 Точки

@k.sevov, Вече разбрах и ти благодаря за подробното обяснение!

@NikolayPopov - Също ти благодаря,защото това също ще ми влезе в употреба. :)

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