存储数据集的最佳方法(在表中)

时间:2010-10-17 12:33:33

标签: c# client hashtable

我有一个客户端和一个服务器程序,我目前正在使用哈希表来存储连接时的客户端名称和IP地址。我现在需要添加客户端在连接时将发送给服务器的另一个变量,但据我所知,哈希表只有2列(键和值)。有没有其他方法可以存储这些数据而不是使用哈希表?

3 个答案:

答案 0 :(得分:4)

您可以将对象粘贴到哈希表或词典中。

因此,请将自己设为某个描述的用户类,然后将您的用户对象以其名称存储在字典中。

这样就可以在需要添加它们时使用其他属性。

public class User
{
    public string Name { get; set; }
    public string IPAddress { get; set; }
    public string AnotherProperty { get; set;}
}


Dictionary<string, User> userTable = new Dictionary<string, User>();

userTable.Add(userName, new User(){Name = "fred", IPAddress = "127.0.0.1", AnotherProperty = "blah"});

像这样的东西

答案 1 :(得分:1)

您可以创建一个新的class专门用于输入此信息,例如

public class Client
{
    private string Name { get; set;}
    private string IP { get; set;}
    //... etc.
}

只需将Client类的实例存储到Session对象(或用于存储HashTable的任何内容),而不是使用HashTable。

如果您需要存储多个客户端的详细信息,请使用List<Client>或字典,如果您需要使用密钥来查找项目。试验看哪些适合你。

答案 2 :(得分:0)

我不确定它是最好的解决方案,但只是为了一般知识,如果你真的需要一个表,你可以使用DataTable Class这是ADO.NET的一部分(它是.NET的原生) 。

这是不可取的原因是它不支持作为字典的唯一键,并且它通常使您的场景中的事情变得复杂。