像C#中的Vector一样的类

时间:2012-11-10 11:10:49

标签: c# class vector

我需要写一个简单的类。 我需要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;
}

但字符串不能是数组的索引(但必须)。

有什么想法吗? 感谢。

4 个答案:

答案 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>类是作为哈希表实现的。

谢谢, 我希望你觉得这很有帮助:)