2008-09-25 6 views
1

VB ASP.NET에서 제네릭을 사용하여 다차원 해시 테이블 생성

와 같은 구문을 사용할 수 있도록 다차원 (중첩 된) 해시 테이블/사전을 만들어야 함 Generics를 사용해야하지만 ASP에서 VB를 사용하여 올바른 구문을 파악할 수 없다는 것을 알고 있습니다. .NET 2.0에는 그물에 많은 C# 예제가 있지만 많은 도움이되지 않습니다.

건배!

+0

* 멀티 - 교정하시기 바랍니다. – GEOCHET

답변

2

OK, 나는 vb.net보다는 C#을 더 나은,하지만 난이가 갈 줄거야 컬렉션은 사전 정의 된 Dictionary (Of String, T)입니다.

그리고 구문은 일반 사전을 사용하거나 StringDictionary은 다음과 같이 보일 것이다 :

val = myHash("key")("key") 

이 좋아되지 않음 :

val = myHash("key").("key") 
+0

나에게 맞는 것처럼 보이지만 VB.NET보다 C# 사람이 더 길다. –

+0

불행히도 VB.NET에는 사전 형식이 없다. IntelliSense는 해당 스 니펫을 좋아하지 않으며 ListDictionary 또는 HybridDictionary로 변경하려고합니다. 둘 다 "... 형식 매개 변수가 없으므로 형식 인수를 가질 수 없습니다."라는 오류 메시지가 나타납니다. –

+0

음, MSDN에 존재한다고 말합니다. System.Collections.Generic에 대한 올바른 Imports 문을 포함하고 있습니까? http://msdn.microsoft.com/en-us/library/xfhwa508(VS.80).aspx –

0

도 (T의)를 System.Collections.Specialized.StringDictionary을있다 ....

0

당신이 사전을 사용해야 만 할 수 있음을 고려하고, 여러 개의 키를 하나의 키 객체로 복합 해시 코드로 구성 할 수 있습니다. 예 : 다중 키 클래스를 만든 다음이를 키로 사용하십시오. 의사의

:

class Multikey { 
private keys; 
public setKey1(...) 
public setKey2(...) 
} 
Dim myKey as MultiKey(...) 
myKey.key1 = ... 
myKey.key2 = ... 

Dim mydic as Dictionary(Of MultiKey, Integer) 

val = mydic(myKey) 
+0

그는 설탕 계 설탕을 잃어 버렸습니다. –

+0

네 말이 맞아. 그런데 또 다시 : val = dic.get (새 키 Multikey ("key1"). ("key2")) – Josh

+0

내가 누락 된 것이 아니라면 결코 그것을 빼낼 수 없을 것입니다. 동일한 값에서 새 키 객체를 만들 수 있지만 다른 객체이므로 사전의 동일한 객체를 가리 키지 않습니다. – dwidel