0

我正在使用 ASP.NET 使用 C#。我对这个错误很熟悉,但这次我无法解决它。我在这样的下拉列表中有文本:

राम कुमार सिंह 8s2w8r

here राम कुमार सिंह is the name in HINDI while 8s2w8r is users' ID.

我需要将这两个值分开并需要将它们作为会话变量传递。我正在使用的逻辑在代码中进行了描述。

 public string reverse(string s)
        {
            char []temp=s.ToCharArray();
            Array.Reverse(temp);
            return (temp.ToString());
        }


        string dropdowntextreversed=reverse(DropDownList1.Text);
        char []delim=new char[]{' '};
        string []parts=dropdowntextreversed.Split(delim,2);
        string family_head_uid = reverse(parts[0]);
        string family_head = reverse(parts[1]);
        Session.Add("family_head", family_head);
        Session.Add("family_head_uid", family_head_uid);
        Response.Redirect("/WebForm1.aspx");

我总是得到一个错误,因为索引超出了数组的范围!我不明白这一点,因为我将字符串分成两部分,所以它应该有部分 [0] 和部分 [1]。请建议...

4

3 回答 3

2

您将字符串分成MAXIMUM 2 个部分,但如果只有一个部分,您可能会得到一个部分。

阅读本文档

尝试断言parts.Length is == 2或仅在有两个元素时访问元素

于 2013-01-08T09:01:16.383 回答
2

试试这个链接。因为我认为temp.ToString()which 将返回System.Char[]而不是您正在寻找的值存在问题。改用string.join会起作用。

于 2013-01-08T09:20:31.990 回答
1

使用以下反向方法:

public string reverse(string s)
{
    return String.Join(String.Empty, s.ToCharArray().Reverse());
}
于 2013-01-08T09:25:36.280 回答