Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Сокращение кода

Добрый день. Есть проблема. Не могу понять как сделать проверку на то, какое будет последнее число массива. Точнее могу, но код становить громоздким. Есть ли какой то метод сократить проверку в if?

Спойлер

button18.Click += (s, e) =>
            {
                char[] arr = label1.Text.ToCharArray();
                int length = label1.Text.Length - 1;
                if (arr[length] == '1' || arr[length] == '2' || arr[length] == '3' || arr[length] == '4' || arr[length] == '5' || arr[length] == '6' || arr[length] == '7' || arr[length] == '8' || arr[length] == '9' || arr[length] == '0')
                {
                    label1.Text += '*';
                }
}

 

Привет! По коду вижу, что Вы проверяете является ли последний символ десятичной цифрой. Сократить можно так:

if (char.IsDigit(label1.Text.Last()))
Цитата: Вася от 19.11.2021, 00:05

Привет! По коду вижу, что Вы проверяете является ли последний символ десятичной цифрой. Сократить можно так:

 
 
 
 
if (char.IsDigit(label1.Text.Last()))
if (char.IsDigit(label1.Text.Last()))
 
if (char.IsDigit(label1.Text.Last()))

 

Спасибо! Можно ли совет? Как мне реализовать считывание с label1 символа радикала и возведения в корень? Есть ли такие символы? Просто с label.Text я получаю результат выражения, но как мне их занести в этот самый label  ?

Цитата: Вася от 19.11.2021, 00:05

Привет! По коду вижу, что Вы проверяете является ли последний символ десятичной цифрой. Сократить можно так:

 
 
 
 
if (char.IsDigit(label1.Text.Last()))
if (char.IsDigit(label1.Text.Last()))
 
if (char.IsDigit(label1.Text.Last()))

 

Здравствуйте! Похожая проблема, только теперь мне нужно проверить не содержит ли СТРОКА 1,2,3,4 и т.д. Но разбить на массив char-ов не могу. Писать через Contains все случаи? Или есть опять какой то метод?

Здравствуйте! Не самый короткий способ, но можно сделать с помощью расширений

Код

public static class Extensions
{
    public static bool ContainsDigit(this string str)
    {
        foreach (char c in str)
        {
            if (char.IsDigit(c))
            {
                return true;
            }
        }

        return false;
    }
}

Ну и сама проверка

if (label1.Text.ContainsDigit())
admin и Удаленный пользователь отреагировали на эту запись.
adminУдаленный пользователь

Небольшой спойлер:
Если успею, то в этом месяце сниму урок, который избавит от:
Скопированоarr[length], arr[length], arr[length], arr[length], arr[length], arr[length], arr[length]......
Скопированоtext.Replace("", "").Replace("", "").Replace("", "").Replace("", "").Replace("", "").Replace("", "")......
Скопированоkey.OpenSubkey(x).GetValue("") && key.OpenSubkey(x).GetValue("") && key.OpenSubkey(x).GetValue("") && key.OpenSubkey(x).GetValue("").....

Удаленный пользователь, Удаленный пользователь и ещё 5 отреагировали на эту запись.
Удаленный пользовательУдаленный пользовательУдаленный пользовательУдаленный пользовательУдаленный пользовательУдаленный пользовательУдаленный пользователь