2011-01-14 4 views
3

VS 2008을 사용하고 있는데 HashSet을 초기화하는 방법을 알아야합니다. 내가 초기화하는 동안 그것을 추가하는 데 필요한 몇 가지 값을 알아. tblNames에 값을 어떻게 추가 할 수 있습니까?C#의 에 값을 초기화하는 방법

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.. 

궁극적 인 목표는 values.I 동적 쿼리를 사용하여 데이터베이스를 조회하는 다른 형태에서 다른 테이블과 다른 fields.I에서 이동 그것을 확인할 필요가 중복 입력에서 사용자를 방지하는 것입니다. 일부 인덱스, 값, 값 형식 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

나는 당신이 당신은 단지에 * 참조 * 평등을받을거야 것을 알고 희망 이 방법으로 2D 배열을 만들 수 있습니다. 따라서 세트는 다른 요소가 같은 서로 다른 배열을 처리합니다. 그것이 의도 인 경우에, 중대하다. 그렇지 않으면, 당신은 아마도 자신의'IEqualityComparer '구현물을 작성해야하고, 그 대신에 그 세트를 사용할 집합을 가져야합니다. – Ani

+1

2 차원 배열의 문자열 집합이 정말로 필요합니까? 나는 80 년대 BASIC에서 프로그래밍 한 이후로 다차원 문자열 배열을 사용하여 한 번 생각할 수 없습니다. 나는 당신이 실제로 원하는 것이 다른 데이터 구조라고 생각합니다. 당신이 우리에게 당신의 목적을 말해 준다면 아마도 우리는 더 나은 제안을 할 수있을 것입니다. – Gabe

+0

ur 답변 및 pls에 대한 thnks 내 업데이트 된 질문을 참조하십시오? – kbvishnu

답변

3
tblNames.Add(new [,] { { "0", "tblAssetCategory" }}); 
9

당신이 한 번에 알려진 값의 세트로 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에 도입하고, 다음의 요소들을 포함 하였다 : 오브젝트의 초기화

  • 시퀀스, 및 {} 토큰 둘러싸인 콤마로 분리된다.
  • 각 요소는 컬렉션 개체에 추가 할 요소를 지정하는 초기화 프로그램입니다.
+0

요소 유형은 문자열의 2D 배열입니다. – Ani

+0

@ 아니 : 예, 똑같은 방식으로 작동합니다. 그래도 질문에 더주의를 기울이면 더 좋을 것입니다. 감사! –

+0

의견을 보내 주셔서 감사합니다 .Pls 내 업데이트 된 질문보기 – kbvishnu

3

나는 자바 코드를 작성하고 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}; 
관련 문제