我需要写一个简单的类。 我需要2种方法:
Vector property = new Vector();
property.add("key", "value"); //set value of key
property.get("key"); //return value of key
CSharp是否有这样的课程?
我正在尝试编写自己的课程
string[] keys;
public void add(string key, string value)
{
this.keys[key] = value;
}
但字符串不能是数组的索引(但必须)。
有什么想法吗? 感谢。
答案 0 :(得分:3)
Vector property = new Vector(); --> var property = new Dictionary<string, string>();
property.add("key", "value"); --> property.Add("key", "value");
property.get("key") --> property["key"]
异常处理: 如果在字典中找不到密钥,则最后一个可能会抛出异常。另一种永不抛出的方式是:
string value;
bool keyFound = property.TryGetValue("key", out value);
术语:您的想法通常称为词典或地图;术语 vector ,与标量相反,通常保留给一个简单的数组或值列表。
PS:您可以创建自己的类(参见下文) - 但是为什么拒绝Dictionary<TKey,TValue>
只是因为相关方法未命名为add
和{{1超出我的范围。
get
答案 1 :(得分:2)
您可以轻松地使用词典。
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Key", "Value");
//access using:
dict["Key"];
编辑: 如果需要,您还可以将字典用于其他对象,而不仅仅是字符串。如果您的“值”实际上是数字,您也可以使用:
var dict = new Dictionary<string, double>();
,这可能会为您节省一些转换回数字。
答案 2 :(得分:2)
使用此代码...
private Dictionary<string, string> keys = new Dictionary<string, string>();
public void add(string key, string value)
{
this.keys.Add(key, value);
}
public string get(string key)
{
return this.keys[key];
}
答案 3 :(得分:1)
您可以使用Dictionary<TKey,TValue>
执行此操作。如果您希望将Vector
用作Dictionary
Vector
定义为Dictionary
类
示例强>
class Vector : Dictionary<string,string>
{
public string Get(string Key) //Create a new void Get(string Key) which returns a particular value from a specific Key in the Dictionary (Vector)
{
return this[Key]; //Return the key from the Dictionary
}
public void add(string Key, string Value) //Create a new void Add(string Key, string Value) which creates a particular value referring to a specific Key in the Dictionary (Vector)
{
this.Add(Key, Value); //Add the key and its value to Vector
}
}
Vector property = new Vector(); //Initialize a new class Vector of name property
property.add("key", "value"); //Sets a key of name "key" and its value "value" of type stirng
MessageBox.Show(property.Get("key")); //Returns "value"
//MessageBox.Show(property["key"]); //Returns "value"
这将创建一个实现Vector
的新类Dictionary
,以便您可以将Vector
用作Dictionary
。
注意:Dictionary<TKey, TValue>
是一个通用类,提供从一组键到一组值的映射。字典的每个添加都包含一个值及其关联的键。使用其键检索值非常快,因为Dictionary<TKey, TValue>
类是作为哈希表实现的。
谢谢, 我希望你觉得这很有帮助:)