如何在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.
}
}
如果此字典是类中的私有成员。您可以通过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