c# - 具有 3 个参数的哈希表

标签 c# dictionary hashtable

如何制作一个包含三个参数的hashTable?我想使用 hashTabledictionary 存储电话号码、姓名和地址。电话号码作为键,姓名、地址作为其值。但我只能输入两个数据,电话号码和姓名。如何在 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());  
    }
}

最佳答案

您可以将键作为电话号码,并将值作为一个结构,该结构具有两个成员,一个是地址,一个是姓名。还可以考虑转向 Dictionary,因为它是类型安全的

        struct User
        {
            public string Name;
            public string Address;
        }

       static void Main(string[] args)
       {
           Dictionary<string, User> hash = new Dictionary<string, User>();

          //To add to the hash
           hash.Add( "22255512282" , 
                new User(){ Name = "foo" , Address = "Bar" });

          //To lookup by key
          User user;
          if (hash.TryGetValue("22255512282", out user))
          {
             Console.WriteLine("Found " + user.Name);
          }

      }

关于c# - 具有 3 个参数的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367484/

相关文章:

r - 在 R 中表示哈希表/字典/映射的自然方式

使用字典的 Python 正则表达式替换

C:从带有链表和哈希表的txt文件实现的字典无法找到文件中存在的单词

c# - 帮助在 C# 中包含字符串数组的哈希表

java - 在 Collections.synchronizedmap 上同步

c# - 如何更改 FlowDocumentReader 中选定文本的选择背景颜色

c# - 如何制作 Xunit 测试类并在 Nunit 中使用带有参数的 TestFixture 等构造函数参数?

c# - 如何进行区分大小写的 LINQ 查询?

c# - 功能区控件专注于按钮单击

python - 在python字典中用 "None"替换空值