关于泛型的困惑

时间:2013-08-14 16:59:20

标签: c# generics

我正在尝试使用Dictionary获取有关所选文件的信息。但我不知道该怎么做。这就是我到目前为止。请你帮忙

    Dictionary<string, FileInfo> list = new Dictionary<string, FileInfo>();

        openFileDialog1.Multiselect = true;
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {

            foreach (string file in openFileDialog1.FileNames)
            {
                list[file] = new FileInfo(file);


                //fi = new FileInfo(file);
             //  listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list.Name, list.Length.));

            }
    }

1 个答案:

答案 0 :(得分:3)

所以我假设注释掉的代码是不起作用的。原因是你试图访问字典的属性而不是字典中值的属性

listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list.Name, list.Length.));

应该是

listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list[file].Name, list[file].Length));

首先,您必须使用密钥(在本例中为文件名)检索FileInfo对象,然后您可以访问该实例的NameLength属性。您list变量的类型为字典,并且没有Name属性。如果你在list.Something这样的列表上使用点符号,则会留下一个间接层。