返回首页

我怎样才能使一个Hashtable三个参数?我想存储使用Hashtable的电话号码,姓名和地址。电话号码为重点,并作为其价值的名称,地址。但我可以把两个数据,电话号码和名称。我如何获得一个电话号码,姓名,地址保存在哈希表?

Hashtable phoneBook;

 

public FrmPhoneBook()

{

    InitializeComponent();

    phoneBook = new Hashtable();

}

 

public void addNewPhoneBook(string name, string tel, string add)

{

    string names = name;

    string telp = tel;

    string address = add;

 

    if (!phoneBook.ContainsKey(telp))

    {

        phoneBook.Add(telp, names);

        getDetails();

    }

}

 

public void getDetails()

{

    lvDetails.Items.Clear();

    foreach (DictionaryEntry values in phoneBook)

    {

        lvDetails.Items.Add(values.Value.ToString());

        lvDetails.Items[lvDetails.Items.Count - 1].SubItems.Add(

           values.Key.ToString());  

    }

}

回答

评论会员:游客 时间:2012/02/07
爱德华鲁:你可以使用一个字符串列表,而不是一个字符串值。尝试FF:{C}然后使用名称作为键或电话codeprelang="C#"HashTableobj=spanclass="code-keyword"new/spanHashTable();obj.Add(name,details);spanclass="code-comment"///spanspanclass="code-comment"orobj.Add(tel,details);/span/pre/code请标记为答案投5中,如果这个解决您的问题的问候,爱德华
SAKryukov
评论会员:游客 时间:2012/02/07
代替Hashtable时,首先,从System.Collections.Generic使用泛型类之一:字典(我会说,这是一个候选#1),SortedDictionary或SortedList的。所有这些类型的索引键,并提供计算复杂OLT;1gt的索引搜索的区别主要是速度和内存开销之间的权衡。非泛型类型呈现过时(新的发展;正式,他们是不会过时)由引进仿制药NET2.0。非泛型容器所需的类型转换是一个非常糟糕的事情。现在,这个问题的答案很简单:创建一个结构或类的地址和姓名的成员,使用这个类作为一个值类型,键类型的电话,你以前mdash;SA
emardini
评论会员:游客 时间:2012/02/07
{C3的}这是我会做什么:创建一个新类,具有三个属性:联系电话,姓名,地址,和其余的代码会是这样的:{的C4}getDetails...{C5的}我没有编译此代码,但我认为它必须工作。最好是有一本字典,而不是一个Hashtable,你的字典可以被定义为{5233}