从Dictionary C#中检索数据

时间:2013-06-10 12:49:04

标签: c# dictionary arraylist

所以我正在创建一个映射String键和对象ArrayList的程序(当前是整数)

现在我创建了一个名为Operator的类,它有一个返回Dictionary的方法。

为了测试我的词典的输出,我决定使pop(Messagebox)显示整数值。

然而,事实证明这对我来说是一个交易障碍。在研究成功后,我设法汇编了以下代码:

          Operator op = new Operator();
        ArrayList a;
        op.startCollecting().TryGetValue("Henvendelser", out a);
        int value = (int) a[0];
        MessageBox.Show("" + value);

请注意,startCollecting方法返回Dictionary

当我尝试获取数据时,首先必须创建一个新的空ArrayList,将我现有的ArrayList克隆到该ArrayList中,创建一个整数值,从索引0处的ArrayList中提取项目,然后显示消息框。

我原来是一名java程序员,在Java中我本可以做到这一点:

int value = op.startCollecting().get("Henvendelser").get(0);

我在C#中做错了吗?有更简单的方法来检索数据吗?

3 个答案:

答案 0 :(得分:2)

首先要做的事情:你应该在c#中使用泛型lists而不是ArrayList。

问题:

    Dictonary<string, List<int>> dictonary = op.startCollecting();
    if(dictonary.ContainsKey("Henvendelser"))
    {
        List<int> list = dictonary["Henvendelser"];
        int value = list[0];
        MessageBox.Show(value.ToString());
    }

答案 1 :(得分:1)

您可以像这样检索您的值:

var value = op.startCollection()["Henvendelser"];

答案 2 :(得分:1)

假设您的StartCollecting方法大致如此......

class Operator
{
    public IDictionary<string, IList<int>> StartCollecting() 
    {
        ...
    }
}

...您可以使用IDictionaryIList的索引器来检索您的值:

op.StartCollecting()["Henvendelser"][0]