将string []数组中的值插入记录的ArrayList

时间:2013-05-23 13:16:06

标签: c# arraylist arrays

我将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循环是否有其他方法可以做到这一点???

3 个答案:

答案 0 :(得分:0)

我建议你使用字典。在我看来,这是存储/访问数据的最快方式。此外,对于arraylists,在运行时,它会执行动态的transtyping,这会让你失去这么多时间。

答案 1 :(得分: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)]}));

但是我更喜欢像F票已经推荐的解决方案......使用A Dictionary

Dictionary - MSDN

答案 2 :(得分: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();