0

在我的一个 Web 应用程序页面中,我有一个 C# 代码,如下所示。如何获取arraylist中字符串数组的第一个元素?

代码

    protected void Button3_Click(object sender, EventArgs e)
    {
        //Array test[9] = new Array();
        ArrayList list = new ArrayList();


        list.Add(new string[] { "1", "Test1", "20", "30" });
        list.Add(new string[] { "2", "Test2", "5", "30" });
        list.Add(new string[] { "3", "Test3", "10", "30" });
        list.Add(new string[] { "4", "Test4", "20", "30" });
        list.Add(new string[] { "5", "Test5", "0", "30" });
        list.Add(new string[] { "6", "Test6", "15", "30" });
        list.Add(new string[] { "7", "Test7", "10", "30" });
        list.Add(new string[] { "8", "Test8", "20", "30" });
        list.Add(new string[] { "9", "Test9", "30", "30" });

        LabelMessages.Text = "Number of Items: " + list.Count + " Item 1 record 1: " + list[1];


    }

预期产出

Number of Items: 9 Item 1 record 1: 1

电流输出(这不是我想要的)

Number of Items: 9 Item 1 record 1: System.String[]

因此,假设以下代码:

list.Add(new string[] { "1", "Test1", "20", "30" });

更改为:

list.Add(new string[] { "Test1", "20", "30" });

那么预期的输出应该是:

Number of Items: 9 Item 1 record 1: Test1
4

3 回答 3

0

您需要字符串数组的第一个元素,并且列表的每个元素都呈现一个字符串数组,因此您必须将列表元素类型转换为字符串数组,然后访问数组的第一个元素。这((string[])list[0])[0]将在列表的零位置为您提供数组的第一个元素。

你正在使用ArrayList which is not generic list,你可以使用List which is generic list,你将会free from type casting

LabelMessages.Text = "Number of Items: " + list.Count + 
                     " Item 1 record 1: " +( (string[])list[0])[0];
于 2012-11-01T06:32:48.503 回答
0

表达式 list[1] 将返回当前是字符串数组的Object类型。

由于它是一个对象,因此您将无法像list[1][1]那样直接对其进行索引。您必须先将其显式转换为字符串数组,然后才能对其进行索引。

((字符串[])列表[1])[1];

你可以像这样使用它

LabelMessages.Text = "Number of Items: " + list.Count + " Item 1 record 1: " +  ((string[])list[1])[1];
于 2012-11-01T06:43:30.383 回答
0

嗨,您可以实现反向解析,您可以获得元素。

((字符串[])列表[0])[0]

于 2012-11-01T07:07:48.057 回答