Попрактиковался в решении задачи "получить последние 3 символа" максимально не эффективным способом.
Первый вариант самый правильный, чем дальше тем не оптимальнее. Второй больше всего похож на то что у вас вопросе.
string n2string = "sdfihsdfguhdsfo[ghdfhgdsfhghdfsgdfhghdsfg9wh328932u82hbsab zb cx9832u83232hbnibcz";
int countMinus3 = n2string.Length - 3;
{
string lastThreeSymbols = n2string.Substring(countMinus3);
Console.WriteLine($"lastThreeSymbols = {lastThreeSymbols}");
}
{
string lastThreeSymbols = string.Concat(n2string.Where((_, i) => i >= countMinus3));
Console.WriteLine($"lastThreeSymbols = {lastThreeSymbols}");
}
{
string lastThreeSymbols = n2string.Where((_, i) => i >= countMinus3).Aggregate(string.Empty, (s, c) => s + c);
Console.WriteLine($"lastThreeSymbols = {lastThreeSymbols}");
}
{
string lastThreeSymbols = n2string.Aggregate(string.Empty, (s, c) => (s.Length > 2 ? s.Substring(1) : s) + c);
Console.WriteLine($"lastThreeSymbols = {lastThreeSymbols}");
}