这个表达式中的括号是什么意思

What does the bracket in this expression mean

我正在修改另一个开发人员的代码,我不知道字符串后面的 [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;
            }

String Accessing Individual Characters

You can use array notation with an index value to acquire read-only access to individual characters

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")

总之,穿线愉快