SortedDictionary<TKey,TValue> Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy.
Přetížení
SortedDictionary<TKey,TValue>() |
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která je prázdná a použije výchozí IComparer<T> implementaci pro typ klíče. |
SortedDictionary<TKey,TValue>(IComparer<TKey>) |
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která je prázdná a použije zadanou IComparer<T> implementaci k porovnání klíčů. |
SortedDictionary<TKey,TValue>(IDictionary<TKey,TValue>) |
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která obsahuje elementy zkopírované ze zadané IDictionary<TKey,TValue> a používá výchozí IComparer<T> implementaci pro typ klíče. |
SortedDictionary<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) |
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která obsahuje prvky zkopírované ze zadané IDictionary<TKey,TValue> a používá zadanou IComparer<T> implementaci k porovnání klíčů. |
SortedDictionary<TKey,TValue>()
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která je prázdná a použije výchozí IComparer<T> implementaci pro typ klíče.
public:
SortedDictionary();
public SortedDictionary ();
Public Sub New ()
Příklady
Následující příklad kódu vytvoří prázdný SortedDictionary<TKey,TValue> řetězec s řetězcovými klíči a použije metodu Add k přidání některých prvků. Příklad ukazuje, že Add metoda vyvolá chybu ArgumentException při pokusu o přidání duplicitního klíče.
Tento příklad kódu je součástí většího příkladu SortedDictionary<TKey,TValue> pro třídu.
// Create a new sorted dictionary of strings, with string
// keys.
SortedDictionary<string, string> openWith =
new SortedDictionary<string, string>();
// Add some elements to the dictionary. There are no
// duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
// The Add method throws an exception if the new key is
// already in the dictionary.
try
{
openWith.Add("txt", "winword.exe");
}
catch (ArgumentException)
{
Console.WriteLine("An element with Key = \"txt\" already exists.");
}
' Create a new sorted dictionary of strings, with string
' keys.
Dim openWith As New SortedDictionary(Of String, String)
' Add some elements to the dictionary. There are no
' duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("dib", "paint.exe")
openWith.Add("rtf", "wordpad.exe")
' The Add method throws an exception if the new key is
' already in the dictionary.
Try
openWith.Add("txt", "winword.exe")
Catch
Console.WriteLine("An element with Key = ""txt"" already exists.")
End Try
Poznámky
Každý klíč v SortedDictionary<TKey,TValue> souboru musí být jedinečný podle výchozího porovnávače.
SortedDictionary<TKey,TValue> k provedení klíčových porovnání vyžaduje implementaci porovnávače. Tento konstruktor používá výchozí obecný porovnávací nástroj Comparer<T>.Defaultrovnosti . Pokud type TKey
implementuje System.IComparable<T> obecné rozhraní, použije výchozí porovnávací nástroj tuto implementaci. Případně můžete zadat implementaci IComparer<T> obecného rozhraní pomocí konstruktoru, který přijímá comparer
parametr.
Tento konstruktor je operace O(1).
Viz také
Platí pro
SortedDictionary<TKey,TValue>(IComparer<TKey>)
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která je prázdná a použije zadanou IComparer<T> implementaci k porovnání klíčů.
public:
SortedDictionary(System::Collections::Generic::IComparer<TKey> ^ comparer);
public SortedDictionary (System.Collections.Generic.IComparer<TKey> comparer);
public SortedDictionary (System.Collections.Generic.IComparer<TKey>? comparer);
new System.Collections.Generic.SortedDictionary<'Key, 'Value> : System.Collections.Generic.IComparer<'Key> -> System.Collections.Generic.SortedDictionary<'Key, 'Value>
Public Sub New (comparer As IComparer(Of TKey))
Parametry
- comparer
- IComparer<TKey>
Implementace IComparer<T> , která se má použít při porovnávání klíčů, nebo null
použití výchozí Comparer<T> hodnoty pro typ klíče.
Příklady
Následující příklad kódu vytvoří SortedDictionary<TKey,TValue> s porovnávačem nerozlišující malá a malá písmena pro aktuální jazykovou verzi. Příklad přidá čtyři prvky, některé s klávesami s velkými písmeny a jiné s velkými písmeny. Příklad se pak pokusí přidat prvek s klíčem, který se liší od existujícího klíče pouze případem, zachytí výslednou výjimku a zobrazí chybovou zprávu. Nakonec příklad zobrazí prvky v pořadí řazení bez rozlišování velkých a malých písmen.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
// Create a new SortedDictionary of strings, with string keys
// and a case-insensitive comparer for the current culture.
SortedDictionary<string, string> openWith =
new SortedDictionary<string, string>(
StringComparer.CurrentCultureIgnoreCase);
// Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("DIB", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
// Try to add a fifth element with a key that is the same
// except for case; this would be allowed with the default
// comparer.
try
{
openWith.Add("BMP", "paint.exe");
}
catch (ArgumentException)
{
Console.WriteLine("\nBMP is already in the dictionary.");
}
// List the contents of the sorted dictionary.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in openWith )
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key,
kvp.Value);
}
}
}
/* This code example produces the following output:
BMP is already in the dictionary.
Key = bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
*/
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
' Create a new SortedDictionary of strings, with string keys
' and a case-insensitive comparer for the current culture.
Dim openWith As New SortedDictionary(Of String, String)( _
StringComparer.CurrentCultureIgnoreCase)
' Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("DIB", "paint.exe")
openWith.Add("rtf", "wordpad.exe")
' Try to add a fifth element with a key that is the same
' except for case; this would be allowed with the default
' comparer.
Try
openWith.Add("BMP", "paint.exe")
Catch ex As ArgumentException
Console.WriteLine(vbLf & "BMP is already in the dictionary.")
End Try
' List the contents of the sorted dictionary.
Console.WriteLine()
For Each kvp As KeyValuePair(Of String, String) In openWith
Console.WriteLine("Key = {0}, Value = {1}", _
kvp.Key, kvp.Value)
Next kvp
End Sub
End Class
' This code example produces the following output:
'
'BMP is already in the dictionary.
'
'Key = bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe
Poznámky
Každý klíč v SortedDictionary<TKey,TValue> souboru musí být jedinečný podle zadaného porovnávače.
SortedDictionary<TKey,TValue> k provedení klíčových porovnání vyžaduje implementaci porovnávače. Pokud comparer
je null
, použije tento konstruktor výchozí obecný porovnávací nástroj Comparer<T>.Defaultrovnosti , . Pokud type TKey
implementuje System.IComparable<T> obecné rozhraní, použije výchozí porovnávací nástroj tuto implementaci.
Tento konstruktor je operace O(1).
Viz také
Platí pro
SortedDictionary<TKey,TValue>(IDictionary<TKey,TValue>)
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která obsahuje elementy zkopírované ze zadané IDictionary<TKey,TValue> a používá výchozí IComparer<T> implementaci pro typ klíče.
public:
SortedDictionary(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary);
public SortedDictionary (System.Collections.Generic.IDictionary<TKey,TValue> dictionary);
new System.Collections.Generic.SortedDictionary<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> -> System.Collections.Generic.SortedDictionary<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue))
Parametry
- dictionary
- IDictionary<TKey,TValue>
Čí IDictionary<TKey,TValue> elementy jsou zkopírovány do nového SortedDictionary<TKey,TValue>.
Výjimky
dictionary
je null
.
dictionary
obsahuje jeden nebo více duplicitních klíčů.
Příklady
Následující příklad kódu ukazuje, jak použít SortedDictionary<TKey,TValue> k vytvoření seřazené kopie informací v Dictionary<TKey,TValue>, předáním Dictionary<TKey,TValue> do konstruktoru SortedDictionary<TKey,TValue>(IComparer<TKey>) .
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
// Create a new Dictionary of strings, with string keys.
//
Dictionary<string, string> openWith =
new Dictionary<string, string>();
// Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
// Create a SortedDictionary of strings with string keys,
// and initialize it with the contents of the Dictionary.
SortedDictionary<string, string> copy =
new SortedDictionary<string, string>(openWith);
// List the contents of the copy.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in copy )
{
Console.WriteLine("Key = {0}, Value = {1}",
kvp.Key, kvp.Value);
}
}
}
/* This code example produces the following output:
Key = bmp, Value = paint.exe
Key = dib, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
*/
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
' Create a new Dictionary of strings, with string
' keys.
Dim openWith As New Dictionary(Of String, String)
' Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("dib", "paint.exe")
openWith.Add("rtf", "wordpad.exe")
' Create a SortedDictionary of strings with string keys,
' and initialize it with the contents of the Dictionary.
Dim copy As New SortedDictionary(Of String, String)(openWith)
' List the sorted contents of the copy.
Console.WriteLine()
For Each kvp As KeyValuePair(Of String, String) In copy
Console.WriteLine("Key = {0}, Value = {1}", _
kvp.Key, kvp.Value)
Next kvp
End Sub
End Class
' This code example produces the following output:
'
'Key = bmp, Value = paint.exe
'Key = dib, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe
Poznámky
Každý klíč v SortedDictionary<TKey,TValue> souboru musí být jedinečný podle výchozího porovnávače. Proto musí být každý klíč ve zdroji dictionary
také jedinečný podle výchozího porovnávače.
SortedDictionary<TKey,TValue> k provedení klíčových porovnání vyžaduje implementaci porovnávače. Tento konstruktor používá výchozí obecný porovnávací nástroj rovnosti, Comparer<T>.Default. Pokud type TKey
implementuje System.IComparable<T> obecné rozhraní, použije výchozí porovnávací nástroj tuto implementaci. Případně můžete zadat implementaci IComparer<T> obecného rozhraní pomocí konstruktoru, který přijímá comparer
parametr.
Tento konstruktor je operace O(n
log n
), kde n
je počet prvků v dictionary
.
Viz také
Platí pro
SortedDictionary<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>)
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
- Zdroj:
- SortedDictionary.cs
Inicializuje novou instanci SortedDictionary<TKey,TValue> třídy, která obsahuje prvky zkopírované ze zadané IDictionary<TKey,TValue> a používá zadanou IComparer<T> implementaci k porovnání klíčů.
public:
SortedDictionary(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary, System::Collections::Generic::IComparer<TKey> ^ comparer);
public SortedDictionary (System.Collections.Generic.IDictionary<TKey,TValue> dictionary, System.Collections.Generic.IComparer<TKey> comparer);
public SortedDictionary (System.Collections.Generic.IDictionary<TKey,TValue> dictionary, System.Collections.Generic.IComparer<TKey>? comparer);
new System.Collections.Generic.SortedDictionary<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> * System.Collections.Generic.IComparer<'Key> -> System.Collections.Generic.SortedDictionary<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue), comparer As IComparer(Of TKey))
Parametry
- dictionary
- IDictionary<TKey,TValue>
Čí IDictionary<TKey,TValue> elementy jsou zkopírovány do nového SortedDictionary<TKey,TValue>.
- comparer
- IComparer<TKey>
Implementace IComparer<T> , která se má použít při porovnávání klíčů, nebo null
použití výchozí Comparer<T> hodnoty pro typ klíče.
Výjimky
dictionary
je null
.
dictionary
obsahuje jeden nebo více duplicitních klíčů.
Příklady
Následující příklad kódu ukazuje, jak použít SortedDictionary<TKey,TValue> k vytvoření kopie informací bez rozlišování malých a malých písmen seřazené informace v nerozlišující malá a malá písmena Dictionary<TKey,TValue>předáním Dictionary<TKey,TValue> do konstruktoru SortedDictionary<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) . V tomto příkladu jsou porovnávače nerozlišující malá a velká písmena pro aktuální jazykovou verzi.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
// Create a new Dictionary of strings, with string keys and
// a case-insensitive equality comparer for the current
// culture.
Dictionary<string, string> openWith =
new Dictionary<string, string>
(StringComparer.CurrentCultureIgnoreCase);
// Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe");
openWith.Add("Bmp", "paint.exe");
openWith.Add("DIB", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
// List the contents of the Dictionary.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in openWith)
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key,
kvp.Value);
}
// Create a SortedDictionary of strings with string keys and a
// case-insensitive equality comparer for the current culture,
// and initialize it with the contents of the Dictionary.
SortedDictionary<string, string> copy =
new SortedDictionary<string, string>(openWith,
StringComparer.CurrentCultureIgnoreCase);
// List the sorted contents of the copy.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in copy )
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key,
kvp.Value);
}
}
}
/* This code example produces the following output:
Key = txt, Value = notepad.exe
Key = Bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = Bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
*/
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
' Create a new Dictionary of strings, with string keys and
' a case-insensitive equality comparer for the current
' culture.
Dim openWith As New Dictionary(Of String, String)( _
StringComparer.CurrentCultureIgnoreCase)
' Add some elements to the dictionary.
openWith.Add("txt", "notepad.exe")
openWith.Add("Bmp", "paint.exe")
openWith.Add("DIB", "paint.exe")
openWith.Add("rtf", "wordpad.exe")
' List the contents of the Dictionary.
Console.WriteLine()
For Each kvp As KeyValuePair(Of String, String) In openWith
Console.WriteLine("Key = {0}, Value = {1}", _
kvp.Key, kvp.Value)
Next kvp
' Create a SortedDictionary of strings with string keys and a
' case-insensitive equality comparer for the current culture,
' and initialize it with the contents of the Dictionary.
Dim copy As New SortedDictionary(Of String, String)(openWith, _
StringComparer.CurrentCultureIgnoreCase)
' List the sorted contents of the copy.
Console.WriteLine()
For Each kvp As KeyValuePair(Of String, String) In copy
Console.WriteLine("Key = {0}, Value = {1}", _
kvp.Key, kvp.Value)
Next kvp
End Sub
End Class
' This code example produces the following output:
'
'Key = txt, Value = notepad.exe
'Key = Bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'
'Key = Bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe
Poznámky
Každý klíč v SortedDictionary<TKey,TValue> souboru musí být jedinečný podle zadaného porovnávače; proto musí být každý klíč ve zdroji dictionary
také jedinečný podle zadaného porovnávače.
SortedDictionary<TKey,TValue> k provedení klíčových porovnání vyžaduje implementaci porovnávače. Pokud comparer
je null
, použije tento konstruktor výchozí obecný porovnávací nástroj Comparer<T>.Defaultrovnosti , . Pokud type TKey
implementuje System.IComparable<T> obecné rozhraní, použije výchozí porovnávací nástroj tuto implementaci.
Tento konstruktor je operace O(n
log n
), kde n
je počet prvků v dictionary
.