Информация об изменениях

Сообщение Re[9]: Dictionary<X, Dictionary<Y, Z>> от 19.10.2015 9:17

Изменено 19.10.2015 9:20 Serginio1

Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, Ромашка, Вы писали:


Р>>Здравствуйте, _NN_, Вы писали:

_NN>>>Dictionary и есть хештаблица.
_NN>>>Или я чего-то не понимаю ?

Р>>Ну да. Так и посчитайте один хеш из всех своих параметров и храните в одном dictionary без вложенности.


_NN>А удобство пользования ?

_NN>Вместо d[x][y] писать d.Where(_ => _.X == x && _.Y == y).First() ?
_NN>Удалить вместо простого Remove придется писать намного больше кода.

Не намного пройтись по ключам и найти Ключи по X. Всего 2 строчки
var ключи=d.Keys.Where(key=> key.X==X).ToList();


foreach (var ключ in ключи) d.Remove(ключ );


Вместо  d[x][y]
d[new Tuple<X,Y>(x,y)]



Либо сделать наследника от Dictionary и использовать конструктор значения по умолчанию
http://rsdn.ru/forum/dotnet/6218191.1
Автор: Serginio1
Дата: 18.10.15
Re[9]: Dictionary<X, Dictionary<Y, Z>>
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, Ромашка, Вы писали:


Р>>Здравствуйте, _NN_, Вы писали:

_NN>>>Dictionary и есть хештаблица.
_NN>>>Или я чего-то не понимаю ?

Р>>Ну да. Так и посчитайте один хеш из всех своих параметров и храните в одном dictionary без вложенности.


_NN>А удобство пользования ?

_NN>Вместо d[x][y] писать d.Where(_ => _.X == x && _.Y == y).First() ?
_NN>Удалить вместо простого Remove придется писать намного больше кода.

Не намного пройтись по ключам и найти Ключи по X. Всего 2 строчки
var ключи=d.Keys.Where(key=> key.Item1==x).Select(key=> key).ToList();


foreach (var ключ in ключи) d.Remove(ключ );


Вместо  d[x][y]
d[new Tuple<X,Y>(x,y)]



Либо сделать наследника от Dictionary и использовать конструктор значения по умолчанию
http://rsdn.ru/forum/dotnet/6218191.1
Автор: Serginio1
Дата: 18.10.15