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

时间:2018-06-25 23:19:55

标签: c# .net-3.5

我正在修改另一个开发人员的代码,并且在这种情况下,我不知道字符串后的[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 :(得分:2)

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

无论如何,祝您穿线愉快