Что означает скобка в этом выражении - PullRequest
0 голосов
/ 26 июня 2018

Я изменяю код другого разработчика, и я не знаю, что в этом контексте означает скобка [0] после строки, кто-то может мне объяснить?Моя первая мысль: это относится к первому столбцу GridView1, но это не правильный способ обозначить столбец, не так ли?Кстати, строковые значения в операторе if представляют собой 7-значные числа, выраженные в виде строк.Первый столбец - столбец DataKey.

if (GridView1.SelectedValue.ToString()[0] != '5' && GridView1.SelectedValue.ToString().Substring(0, 2) != "95")
            {
                LinkButton1.Visible = false;
                LinkButton2.Visible = false;
            }
            else
            {
                LinkButton1.Visible = true;
                LinkButton2.Visible = true;
            }

1 Ответ

0 голосов
/ 26 июня 2018

Строка Доступ к отдельным символам

Вы можете использовать запись массива со значением индекса для получения доступа только для чтения к отдельным символам

if (GridView1.SelectedValue.ToString()[0] != '5' && GridView1.SelectedValue.ToString().Substring(0, 2) != "95")

Как отмечается в комментариях, оба нижеприведенных кода будут выдаваться, если недостаточно символов

GridView1.SelectedValue.ToString()[0]
GridView1.SelectedValue.ToString().Substring(0, 2)

Также согласно DRY , дважды вызывать это излишне, а также беспорядочно

GridView1.SelectedValue.ToString()

Когда вы можете

var something = GridView1.SelectedValue.ToString();

Наконец, обычно вы проверяете это ради здравомыслия, Как, например,

if(!string.IsNullOrEmpty(something) && something.Length >= 2)
   if (something[0] != '5' && something.Substring(0, 2) != "95")

В любом случае, получайте удовольствие, нанизывая

...