0

我将把 String[] 中的值添加到 Arraylist 中。但是,我想从 ArrayList 中访问这些字符串值。

我试过这种方式。

private void Form1_Load()
{
    fr = new string[5] { "1", "2", "3", "4", "5" };
    bd = new string[5] {"a", "b","c", "d", "e"};
    m = new ArrayList();
    dosomething();
}

private void dosomething()
{
    string[] record = new string[3];
    for (int i = 0; i < 5; i++)
    {
        record[0] = "1";
        record[1] = fr[i];
        record[2] = bd[i];
        m.Add(record);
    }
}

我不想使用 for 循环是不是还有其他方法可以做到这一点???

4

3 回答 3

0

我建议你使用字典。在我看来,这是存储/访问数据的最快方式。此外,使用 arraylists,在运行时,它会执行动态转换,这会让你浪费很多时间。

于 2013-05-23T13:37:54.780 回答
0

您可能想使用:

        fr = new string[5] { "1", "2", "3", "4", "5" };
        bd = new string[5] { "a", "b", "c", "d", "e" };
        m = new ArrayList();
        fr.ToList().ForEach(_item => m.Add(new String[]{ "1", _item,bd[fr.ToList().IndexOf(_item)]}));

但我更喜欢 Fares 已经推荐的解决方案......使用 ADictionary

字典 - MSDN

于 2013-05-23T13:43:24.997 回答
0

不确定为什么需要 ArrayList。通用列表可能更适合您。

var fr = new string[5] { "1", "2", "3", "4", "5" };
var bd = new string[5] {"a", "b","c", "d", "e"};

int i = 1;
var results = fr.Zip<string, string, string[]>(bd, (a,b) => {
    var v = new string [3] { i.ToString(), a,b }; 
    i++;
    return v;
}).ToList();
于 2013-05-23T13:43:56.543 回答