SortedList Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma coleção de pares chave/valor que são classificados pelas chaves e podem ser acessados por chave e por índice.
public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : System.Collections.IDictionary
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
interface ICollection
interface IEnumerable
interface IDictionary
type SortedList = class
interface ICollection
interface IEnumerable
interface IDictionary
interface ICloneable
[<System.Serializable>]
type SortedList = class
interface IDictionary
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SortedList = class
interface IDictionary
interface ICollection
interface IEnumerable
interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
- Herança
-
SortedList
- Atributos
- Implementações
Exemplos
O exemplo de código a seguir mostra como criar e inicializar um SortedList objeto e como imprimir suas chaves e valores.
using System;
using System.Collections;
public class SamplesSortedList2
{
public static void Main()
{
// Creates and initializes a new SortedList.
SortedList mySL = new SortedList();
mySL.Add("Third", "!");
mySL.Add("Second", "World");
mySL.Add("First", "Hello");
// Displays the properties and values of the SortedList.
Console.WriteLine("mySL");
Console.WriteLine(" Count: {0}", mySL.Count);
Console.WriteLine(" Capacity: {0}", mySL.Capacity);
Console.WriteLine(" Keys and Values:");
PrintKeysAndValues(mySL);
}
public static void PrintKeysAndValues(SortedList myList)
{
Console.WriteLine("\t-KEY-\t-VALUE-");
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i));
}
Console.WriteLine();
}
}
/*
This code produces the following output.
mySL
Count: 3
Capacity: 16
Keys and Values:
-KEY- -VALUE-
First: Hello
Second: World
Third: !
*/
Imports System.Collections
Public Class SamplesSortedList
Public Shared Sub Main()
' Creates and initializes a new SortedList.
Dim mySL As New SortedList()
mySL.Add("Third", "!")
mySL.Add("Second", "World")
mySL.Add("First", "Hello")
' Displays the properties and values of the SortedList.
Console.WriteLine("mySL")
Console.WriteLine(" Count: {0}", mySL.Count)
Console.WriteLine(" Capacity: {0}", mySL.Capacity)
Console.WriteLine(" Keys and Values:")
PrintKeysAndValues(mySL)
End Sub
Public Shared Sub PrintKeysAndValues(myList As SortedList)
Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
"-VALUE-")
Dim i As Integer
For i = 0 To myList.Count - 1
Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
"{1}", myList.GetKey(i), myList.GetByIndex(i))
Next i
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' mySL
' Count: 3
' Capacity: 16
' Keys and Values:
' -KEY- -VALUE-
' First: Hello
' Second: World
' Third: !
Comentários
Um SortedList elemento pode ser acessado por sua chave, como um elemento em qualquer IDictionary implementação ou por seu índice, como um elemento em qualquer IList implementação.
Importante
Não recomendamos que você use a SortedList classe para um novo desenvolvimento. Em vez disso, recomendamos que você use a classe genérica System.Collections.Generic.SortedList<TKey,TValue> . Para obter mais informações, consulte coleções não genéricas que não devem ser usadas no GitHub.
Um SortedList objeto mantém internamente duas matrizes para armazenar os elementos da lista; ou seja, uma matriz para as chaves e outra matriz para os valores associados. Cada elemento é um par chave/valor que pode ser acessado como um DictionaryEntry objeto. Uma chave não pode ser null, mas um valor pode ser.
A capacidade de um SortedList objeto é o número de elementos que pode SortedList conter. À medida que os elementos são adicionados a um SortedList, a capacidade é automaticamente aumentada conforme necessário por meio da realocação. A capacidade pode ser reduzida chamando TrimToSize ou definindo a Capacity propriedade explicitamente.
Somente .NET Framework: Para objetos muito grandes SortedList , você pode aumentar a capacidade máxima para 2 bilhões de elementos em um sistema de 64 bits definindo o enabled atributo do elemento de <gcAllowVeryLargeObjects> configuração no true ambiente em tempo de execução.
Os elementos de um SortedList objeto são classificados pelas chaves de acordo com uma implementação específica IComparer especificada quando ela SortedList é criada ou de acordo com a IComparable implementação fornecida pelas próprias chaves. Em ambos os casos, um SortedList não permite chaves duplicadas.
A sequência de índice é baseada na sequência de classificação. Quando um elemento é adicionado, ele é inserido SortedList na ordem de classificação correta e a indexação é ajustada adequadamente. Quando um elemento é removido, a indexação também se ajusta adequadamente. Portanto, o índice de um par chave/valor específico pode ser alterado à medida que os elementos são adicionados ou removidos do SortedList objeto.
As operações em um SortedList objeto tendem a ser mais lentas do que as operações em um Hashtable objeto devido à classificação. No entanto, o
Os elementos nesta coleção podem ser acessados usando um índice inteiro. Os índices nesta coleção são baseados em zero.
A foreach instrução da linguagem C# (for each no Visual Basic) retorna um objeto do tipo dos elementos na coleção. Como cada elemento do SortedList objeto é um par chave/valor, o tipo de elemento não é o tipo da chave ou o tipo do valor. Em vez disso, o tipo de elemento é DictionaryEntry. Por exemplo:
foreach (DictionaryEntry de in mySortedList)
{
//...
}
For Each de As DictionaryEntry In mySortedList
'...
Next de
A foreach instrução é um wrapper em torno do enumerador, que permite apenas a leitura de, não gravando para, a coleção.
Construtores
| Nome | Description |
|---|---|
| SortedList() |
Inicializa uma nova instância da SortedList classe que está vazia, tem a capacidade inicial padrão e é classificada de acordo com a IComparable interface implementada por cada chave adicionada ao SortedList objeto. |
| SortedList(IComparer, Int32) |
Inicializa uma nova instância da SortedList classe que está vazia, tem a capacidade inicial especificada e é classificada de acordo com a interface especificada IComparer . |
| SortedList(IComparer) |
Inicializa uma nova instância da SortedList classe que está vazia, tem a capacidade inicial padrão e é classificada de acordo com a interface especificada IComparer . |
| SortedList(IDictionary, IComparer) |
Inicializa uma nova instância da SortedList classe que contém elementos copiados do dicionário especificado, tem a mesma capacidade inicial que o número de elementos copiados e é classificada de acordo com a interface especificada IComparer . |
| SortedList(IDictionary) |
Inicializa uma nova instância da SortedList classe que contém elementos copiados do dicionário especificado, tem a mesma capacidade inicial que o número de elementos copiados e é classificada de acordo com a IComparable interface implementada por cada chave. |
| SortedList(Int32) |
Inicializa uma nova instância da SortedList classe que está vazia, tem a capacidade inicial especificada e é classificada de acordo com a IComparable interface implementada por cada chave adicionada ao SortedList objeto. |
Propriedades
| Nome | Description |
|---|---|
| Capacity |
Obtém ou define a capacidade de um SortedList objeto. |
| Count |
Obtém o número de elementos contidos em um SortedList objeto. |
| IsFixedSize |
Obtém um valor que indica se um SortedList objeto tem um tamanho fixo. |
| IsReadOnly |
Obtém um valor que indica se um SortedList objeto é somente leitura. |
| IsSynchronized |
Obtém um valor que indica se o acesso a um SortedList objeto é sincronizado (thread safe). |
| Item[Object] |
Obtém ou define o valor associado a uma chave específica em um SortedList objeto. |
| Keys |
Obtém as chaves em um SortedList objeto. |
| SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso a um SortedList objeto. |
| Values |
Obtém os valores em um SortedList objeto. |
Métodos
| Nome | Description |
|---|---|
| Add(Object, Object) |
Adiciona um elemento com a chave e o valor especificados a um SortedList objeto. |
| Clear() |
Remove todos os elementos de um SortedList objeto. |
| Clone() |
Cria uma cópia superficial de um SortedList objeto. |
| Contains(Object) |
Determina se um SortedList objeto contém uma chave específica. |
| ContainsKey(Object) |
Determina se um SortedList objeto contém uma chave específica. |
| ContainsValue(Object) |
Determina se um SortedList objeto contém um valor específico. |
| CopyTo(Array, Int32) |
Copia elementos para um objeto unidimensional SortedListArray , começando no índice especificado na matriz. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetByIndex(Int32) |
Obtém o valor no índice especificado de um SortedList objeto. |
| GetEnumerator() |
Retorna um IDictionaryEnumerator objeto que itera por meio de um SortedList objeto. |
| GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
| GetKey(Int32) |
Obtém a chave no índice especificado de um SortedList objeto. |
| GetKeyList() |
Obtém as chaves em um SortedList objeto. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetValueList() |
Obtém os valores em um SortedList objeto. |
| IndexOfKey(Object) |
Retorna o índice baseado em zero da chave especificada em um SortedList objeto. |
| IndexOfValue(Object) |
Retorna o índice baseado em zero da primeira ocorrência do valor especificado em um SortedList objeto. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Remove(Object) |
Remove o elemento com a chave especificada de um SortedList objeto. |
| RemoveAt(Int32) |
Remove o elemento no índice especificado de um SortedList objeto. |
| SetByIndex(Int32, Object) |
Substitui o valor em um índice específico em um SortedList objeto. |
| Synchronized(SortedList) |
Retorna um wrapper sincronizado (thread-safe) para um SortedList objeto. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| TrimToSize() |
Define a capacidade como o número real de elementos em um SortedList objeto. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IEnumerable.GetEnumerator() |
Retorna um IEnumerator que itera por meio do SortedList. |
Métodos de Extensão
| Nome | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
| AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |
| Cast<TResult>(IEnumerable) |
Converte os elementos de um IEnumerable para o tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base em um tipo especificado. |
Aplica-se a
Acesso thread-safe
Membros estáticos públicos (Shared no Visual Basic) desse tipo são thread safe. Não há garantia de que quaisquer membros de instância sejam thread-safe.
Um SortedList objeto pode dar suporte a vários leitores simultaneamente, desde que a coleção não seja modificada. Para garantir a segurança do thread, SortedListtodas as operações devem ser feitas por meio do wrapper retornado pelo Synchronized(SortedList) método.
Enumerar por meio de uma coleção não é intrinsecamente um procedimento thread-safe. Mesmo quando uma coleção é sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador gere uma exceção. Para garantir a segurança do thread durante a enumeração, você pode bloquear a coleção durante toda a enumeração ou capturar as exceções resultantes de alterações feitas por outros threads.