Въпрос относно конвертиране на strings[] в char[] чрез Lambda.
Здравейте.
Тъй като Lambda изразите не са ми силата,ще се опитам да обясня какво се опитвам да направя.
Имам вход от някакъв брой strings на един ред,разделени със space.
Това,което бих искал е всеки един отделен string да го превърна в char[],чрез Lambda израз.
Това,което успявам да постигна,чрез израза по-долу е да създам array,пълен с още array.
var firstLineString = Console.ReadLine().Split(' ').Select(x => x.ToCharArray());
Желанието ми е да мога да достъпя всеки един array[] и да продължа с неговата обработка.
Така както се случва,предполага записване на създадените char[] в отделна променлива,но не съм убеден как мога да го постигна това на същия ред.
Ще съм много благодарен за малко помощ и ще разясня допълнително,ако не съм описал добре,това което търся като резултат.
Благодаря предварително!
Примерно, ако те разбирам правилно, би трябвало нов стринг да се е създал,как мога да извикам някой от тези стрингове вече като продължа с програмта?
Ако сложиш ToArray() накрая ще си имаш масив от стрингове и можеш да си ги викаш по индекс.
По-подробно идеята е, че Select взема всеки елемент от подадената му колекция, прилага му някаква трансформация (в ламбда функцията) и го вкарва в нова колекция, която ти се връща накрая като резултат. Ако следваме логиката на целия ред, в началото четем стринг от конзолата, след това го сплитваме на масив от отделни стрингове, след това Select взема всеки стринг и го прави на char[] и съответно ни връща колекция от char[]. Продължението от моя пример взема всеки от тях и го завърта, съответно връща колекция от обърнати char[]. Следващият Select взема всеки char[] и му слепва елементите в стринг, като накрая връща колекция от стрингове (залепените char[]) и тази колекция можем да си я направим на стандартен масив, лист или да си я foreach-ваме директно.
Не се създават нови стрингове, колекция от колекции от char имаш. Ако искаш да ги напревиш на колекция от стрингове
var stringCollection = firstLineString .Select(x => new string(x.ToArray()))