Лучший способ хранить наборы данных (в таблице) - PullRequest
1 голос
/ 17 октября 2010

У меня есть клиентская и серверная программы, и в настоящее время я использую хеш-таблицы для хранения имени и IP-адреса клиентов при их подключении.Теперь мне нужно добавить еще одну переменную, которую клиент отправит на сервер при подключении, но, насколько я понимаю, в хеш-таблицах есть только 2 столбца (ключ и значение).Есть ли другой способ сохранить эти данные вместо использования хеш-таблиц?

Ответы [ 3 ]

4 голосов
/ 17 октября 2010

Вы можете вставлять объекты в хеш-таблицы или словари.

Так что создайте себе пользовательский класс некоторого описания, а затем сохраните свой пользовательский объект в своем словаре под своим именем.

Это позволит использовать другие свойства по мере необходимости, когда вам нужно их добавить.

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 голос
/ 17 октября 2010

Вы можете создать новый class специально для сортировки этой информации, например,

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

Вместо использования HashTable, просто сохраните экземпляр класса Client в объекте Session (или что бы вы ни использовали для хранения HashTable.)

Если вам нужно хранить более одной информации о клиенте, используйте List<Client> или Словарь, если вам нужны ключи для поиска элементов. Эксперимент, чтобы увидеть, что работает для вас.

0 голосов
/ 17 октября 2010

Я не уверен, что это лучшее решение, но просто для общего знания, если вам действительно нужна таблица, вы можете использовать DataTable Class , который является частью ADO.NET.СЕТЬ).

Причина, по которой это нежелательно, состоит в том, что он не поддерживает уникальные ключи как словарь, и что это обычно усложняет ситуацию в вашем сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...