Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Является ли данный код правильным? C#

Ashab Pix Ученик (110), на голосовании 6 месяцев назад
Здравствуйте, я новичок в программировании, хотелось бы узнать от тех кто давно программирует на C#, является ли данный код правильным и можно ли его как то упростить:

while (true)
{
Console.WriteLine("Введите текст:");
string[] strs = Console.ReadLine().Split();
string chars = "";
string word = "";
Console.WriteLine("Введите номер символа:");
int num = Convert.ToInt32(Console.ReadLine())-1;
for (int i = 0; i<strs.Length; i++)
{
chars = strs[i];
if (chars.Length - 1 >= num)
{
word += chars[num];
}
else
{
word += chars.Last();
}
}
Console.WriteLine(word);
}

(он должен создавать из выбранного символа из нескольких слов одно слово)
Голосование за лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (258859) 7 месяцев назад
 using System; 
using System.Linq;

class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Введите текст:");
string[] strs = Console.ReadLine().Split();

Console.WriteLine("Введите номер символа:");
int num = Convert.ToInt32(Console.ReadLine()) - 1;

string word = string.Join("", strs.Select(s => s.Length > num ? s[num].ToString() : s.Last().ToString()));

Console.WriteLine(word);
}
}
}
Jurijus Zaksas Искусственный Интеллект (440638) 7 месяцев назад
>он должен создавать из выбранного символа из нескольких слов одно слово
Если ты вот это вот словоблудие сможешь изложить четко и грамотно, возможно, можно будет ответить на твой вопрос.

Пока же мне все происходящее выглядит примерно так:

 var s = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);
int n = int.Parse(Console.ReadLine());
Console.WriteLine(s.Aggregate(string.Empty, (x, y) => x += y.Length > n ? y[n - 1] : y.Last()));
Похожие вопросы