수색…


소개

사전은 키와 값의 모음을 나타냅니다. MSDN 사전 (Tkey, TValue) 클래스를 참조하십시오.

사전을 반복하고 모든 항목을 인쇄하십시오.

사전의 각 쌍은 Dictionary와 동일한 유형 매개 변수가있는 KeyValuePair 의 인스턴스입니다. For Each 를 사용하여 사전을 반복하면 각 반복마다 사전에 저장된 키 - 값 쌍 중 하나가 표시됩니다.

For Each kvp As KeyValuePair(Of String, String) In currentDictionary
  Console.WriteLine("{0}: {1}", kvp.Key, kvp.Value)
Next

값으로 채워진 사전 만들기

Dim extensions As New Dictionary(Of String, String) _
  from { { "txt", "notepad" },
  { "bmp", "paint" },
  { "doc", "winword" } }

이것은 사전을 생성하고 즉시 3 개의 KeyValuePairs로 채 웁니다.

나중에 Add 메서드를 사용하여 새 값을 추가 할 수도 있습니다.

extensions.Add("png", "paint")

키 (첫 번째 매개 변수)는 사전에서 고유해야하며, 그렇지 않으면 Exception이 throw됩니다.

사전 값 가져 오기

'Item'속성을 사용하여 사전에서 항목의 값을 얻을 수 있습니다.

Dim extensions As New Dictionary(Of String, String) From {
    { "txt", "notepad" },
    { "bmp", "paint" },
    { "doc", "winword" }
}

Dim program As String = extensions.Item("txt") 'will be "notepad"

' alternative syntax as Item is the default property (a.k.a. indexer)
Dim program As String = extensions("txt") 'will be "notepad"

' other alternative syntax using the (rare)
' dictionary member access operator (a.k.a. bang operator)
Dim program As String = extensions!txt 'will be "notepad"

키가 사전에 존재하지 않는 경우, KeyNotFoundException가 Throw됩니다.

이미 사전에있는 키 확인 중 - 데이터 감소

ConstainsKey 메서드는 키가 사전에 이미 있는지 여부를 확인하는 방법입니다.

이것은 데이터 축소에 유용합니다. 아래 예제에서 새 단어를 만날 때마다 사전에 키로 추가합니다. 그렇지 않으면이 특정 단어에 대한 카운터를 증가시킵니다.

 Dim dic As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)

 Dim words As String() = Split(<big text source>," ", -1, CompareMethod.Binary)

 For Each str As String In words
     If dic.ContainsKey(str) Then
         dic(str) += 1
     Else
         dic.Add(str, 1)
     End If
 Next

XML 축소 예제 : XML 문서의 한 지점에서 모든 하위 노드 이름 및 발생 확인하기

Dim nodes As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)
Dim xmlsrc = New XmlDocument()
xmlsrc.LoadXml(<any text stream source>)

For Each xn As XmlNode In xmlsrc.FirstChild.ChildNodes 'selects the proper parent
    If nodes.ContainsKey(xn.Name) Then
        nodes(xn.Name) += 1
    Else
        nodes.Add(xn.Name, 1)
    End If
Next


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow