如何在C#中检索完整的字典

本文关键字:字典 检索 | 更新日期: 2023-09-27 18:29:42

我在类a中创建了一个字典,并希望在类B中返回整个列表(Key,Value)。有什么建议吗?我在互联网上尝试了很多东西,但似乎都不起作用。我正试图在类a中编写一个方法来检索整个字典。

public class_A
{
  public static Dictionary<string, string> Dict_1 = new Dictionary();
  public add_dict(string name, string add)
  {
     Dict_1.Add(name, add);
  }
  public dict return_dictionary()
  {
    return (Dict_1); // I want to have a proper code to return this dictionary.
  }
}

如何在C#中检索完整的字典

如果此字典是类中的私有成员。您可以通过encapulated方法访问此字典。

public class A
{
    private Dictionary<string, int> _items { set;get;}
    public Dictionary<string, int> GetItems()
    {
        return _items 
    }
}

在B类中,创建一个对象并访问它

A objA = new A();
Dictionary<string, int> thatItems=objA.GetItems();

编辑:根据问题中的编辑您的代码中存在一些问题。

你不能写这样的类public class_A。应该是public class A

你的字典声明应该是这样的

public static Dictionary<string, string> Dict_1 = new Dictionary<string, string>();

add_dict方法需要一个返回类型。(我只是在添加void,你可以有bool或任何你想要的)

public void add_dict(string name, string add)
{
    Dict_1.Add(name, add);
}

方法返回类型应为Dictionary<string, string>。他们你很好。

public Dictionary<string, string> return_dictionary()
{
    return Dict_1;
}

但是仔细查看您的代码,您的Dict_1属性是一个公共属性。因此,您的另一个类甚至不需要您的return_dictionary方法来获取数据。它可以像一样简单地访问数据

A objA = new A();
Dictionary<string, string> stolenData = objA.Dict_1;

所以封装概念被打破了!

你最好让你的会员像这样保持隐私。我只是更改了您的方法名称和变量名称,以遵循一些编码/命名约定,从而提高可读性。

public class A
{
    private Dictionary<string, string> _dict = new Dictionary<string, string>();
    public void Add_dict(string name, string add)
    {
        _dict.Add(name, add);
    }
    public Dictionary<string, string> Return_dictionary()
    {
        return _dict; 
    }
}

这是理解封装的好读物http://www.csharp-station.com/Tutorials/lesson19.aspx