Как инициализировать значения в HashSetв C # - PullRequest
5 голосов
/ 14 января 2011

Я использую VS 2008, и мне нужно знать, как инициализировать HashSet.Я знаю некоторые значения, которые необходимы, чтобы добавить его во время инициализации.Как я могу добавить значения в tblNames.

System.Collections.Generic.HashSet<String[,]> tblNames;
            tblNames = new System.Collections.Generic.HashSet<string[,]>();

tblNames.Add(new String[0,0] {"tblCategory","CatName" ,}); // this is showing Error..

Конечная цель состоит в том, чтобы запретить пользователю вводить повторяющиеся значения. Мне нужно проверять его из разных форм, из разных таблиц и разных полей.база данных с использованием динамического запроса.Мне нужно сохранить имя таблицы и имя столбца в некотором индексе, значении, формате значения for eg My tablename is tblCategory and field name is CatName. Так что я буду хранить значение способом 0,tblCategory,CatName.Поэтому я буду использовать Ajax для страницы обработчика, и в этом я использую приведенный выше код. Здесь я передаю 0, чтобы получить first value[tablename and column name], 1 для другой таблицы и поля и так далее.Поэтому я подумал об использовании этого способа.

Пользуюсь ли я правильным или каким-либо другим способом для достижения цели, т. Е. Чтобы пользователь не мог вводить повторяющиеся значения?

Спасибо, Harie

Ответы [ 3 ]

12 голосов
/ 14 января 2011

Если вы хотите инициализировать HashSet набором известных значений за один шаг, вы можете использовать код, подобный следующему:

HashSet<string[,]> tblNames;
string[,] stringOne = new string[1, 1];
string[,] stringTwo = new string[1, 1];

tblNames = new HashSet<string[,]> { stringOne, stringTwo };

Это называется инициализатором коллекции .Он был введен в C # 3.0 и включает следующие элементы:

  • Последовательность инициализаторов объектов, заключенная в токены { и } и разделенная запятыми.
  • Элементинициализаторы, каждый из которых указывает элемент, который будет добавлен в объект коллекции.
5 голосов
/ 14 января 2011

Я хочу написать код Java и предположить, что он такой же, как в C #

HashSet<T> tblNames = new HashSet<T>(); // T should be same

HashSet<string> tblNames = new HashSet<string> ();
tblNames.add("a");
tblNames.add("b");
tblNames.add("c");

or simply
HashSet<string> tblNames = new HashSet<string> {"a", "b", "c"};

HashSet<String[,]> tblNames = new HashSet<String[,]> (); // same logic you can add array here
tblNames.add(stringArray1);
tblNames.add(stringArray2);

or again
HashSet<String[,]> tblNames = new HashSet<String[,]> {stringArray1, strginArray2};
3 голосов
/ 14 января 2011
tblNames.Add(new [,] { { "0", "tblAssetCategory" }});
...