Viji
@Viji
DevOps Engineer

Как получить последние 3 символа строки используя Lambda expression?

есть длинная строка из которой я хочу достать последние 3 символа, используя Linq и Lambda expression Where... делаю так

string n2string = "sdfihsdfguhdsfo[ghdfhgdsfhghdfsgdfhghdsfg9wh328932u82hbsab zb cx9832u83232hbnibcz";
            int countMinus3 = n2string.Length - 3;
            string lastThreeSymbols = string.Concat(n2string.Where(c => n2string.Count(ch => ch == c) > countMinus3));
            Console.WriteLine($"lastThreeSymbols = {lastThreeSymbols}");


не получается таким способом - знаю есть другие, но хочется именно через этот
  • Вопрос задан
  • 204 просмотра
Решения вопроса 2
WNeZRoS
@WNeZRoS
Попрактиковался в решении задачи "получить последние 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}");
}
Ответ написан
Viji
@Viji Автор вопроса
DevOps Engineer
BigInteger n2=312342337;
string n2String = Convert.ToString(n2);
int countMinus3 = n2String.Length - 3;
string lastThreeSymbols = string.Concat(n2String.Where((c, index) => index >= countMinus3));


работает
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
string. Join(string.Empty, n2string.TakeLast(3))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы