CollectionsUtil Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dizelerde büyük/küçük harf durumunu yoksayan koleksiyonlar oluşturur.
public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
- Devralma
-
CollectionsUtil
Örnekler
Aşağıdaki örnekte, bir grup şehrin nüfus değerlerini tutmak için karma tablo ve sıralanmış liste olmak üzere iki koleksiyon kullanılır. Değerler, şehir adları anahtar olarak kullanılarak koleksiyonlardan alınır. Şehir adları büyük/küçük harfe duyarlı olmayan anahtarlar olarak kullanımlarını göstermek için karışık durumdadır.
using System;
using System.Collections;
using System.Collections.Specialized;
class TestCollectionsUtils
{
public static void Main()
{
Hashtable population1 = CollectionsUtil.CreateCaseInsensitiveHashtable();
population1["Trapperville"] = 15;
population1["Doggerton"] = 230;
population1["New Hollow"] = 1234;
population1["McHenry"] = 185;
// Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1["trapperville"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1["DOGGERTON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1["New hoLLow"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1["MchenrY"]);
SortedList population2 = CollectionsUtil.CreateCaseInsensitiveSortedList();
foreach (string city in population1.Keys)
{
population2.Add(city, population1[city]);
}
// Select cities from the sorted list using mixed case.
Console.WriteLine("\nCase insensitive sorted list results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2["trapPeRVille"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2["dOGGeRtON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2["nEW hOLLOW"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2["MchEnrY"]);
}
}
// This program displays the following output to the console
//
// Case insensitive hashtable results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
//
// Case insensitive sorted list results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
Imports System.Collections
Imports System.Collections.Specialized
Class TestCollectionsUtils
Public Shared Sub Main()
Dim population1 As Hashtable = CollectionsUtil.CreateCaseInsensitiveHashtable()
population1("Trapperville") = 15
population1("Doggerton") = 230
population1("New Hollow") = 1234
population1("McHenry") = 185
' Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1("trapperville"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1("DOGGERTON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1("New hoLLow"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1("MchenrY"))
Dim population2 As SortedList = CollectionsUtil.CreateCaseInsensitiveSortedList()
For Each city As String In population1.Keys
population2.Add(city, population1(city))
Next city
' Select cities from the sorted list using mixed case.
Console.WriteLine(Environment.NewLine + "Case insensitive sorted list results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2("trapPeRVille"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2("dOGGeRtON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2("nEW hOLLOW"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2("MchEnrY"))
End Sub
End Class
' This program displays the following output to the console
'
' Case insensitive hashtable results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
'
' Case insensitive sorted list results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
Açıklamalar
Bu yöntemler, karma kod sağlayıcısının ve karşılaştırıcının büyük/küçük harfe duyarlı olmayan uygulamalarını kullanarak koleksiyonun büyük/küçük harfe duyarlı olmayan bir örneğini oluşturur. Sonuçta elde edilen örnek, farklı davransa da bu sınıfın diğer örnekleri gibi kullanılabilir.
Örneğin, karma tabloya "hello" ve "HELLO" anahtarlarına sahip iki nesnenin ekleneceğini varsayalım. Büyük/küçük harfe duyarlı karma tablosu iki farklı giriş oluşturur; öte yandan, büyük/küçük harfe duyarlı olmayan bir karma tablo ikinci nesneyi eklerken bir özel durum oluşturur.
Oluşturucular
| Name | Description |
|---|---|
| CollectionsUtil() |
CollectionsUtil sınıfının yeni bir örneğini başlatır. |
Yöntemler
| Name | Description |
|---|---|
| CreateCaseInsensitiveHashtable() |
Varsayılan başlangıç kapasitesine sahip sınıfın Hashtable büyük/küçük harfe duyarlı olmayan yeni bir örneğini oluşturur. |
| CreateCaseInsensitiveHashtable(IDictionary) |
Belirtilen sözlükteki girdileri, kopyalanan girdi sayısıyla aynı başlangıç kapasitesine sahip sınıfın büyük/küçük harfe duyarlı olmayan yeni bir örneğine Hashtable kopyalar. |
| CreateCaseInsensitiveHashtable(Int32) |
Belirtilen ilk kapasiteye sahip sınıfın Hashtable büyük/küçük harfe duyarlı olmayan yeni bir örneğini oluşturur. |
| CreateCaseInsensitiveSortedList() |
Dizelerin SortedList büyük/küçük harflerini yoksayan sınıfının yeni bir örneğini oluşturur. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Şunlara uygulanır
İş Parçacığı Güvenliği
bir Hashtable , aynı anda bir yazıcıyı ve birden çok okuyucuyı destekleyebilir. Birden çok yazıcıyı desteklemek için tüm işlemlerin yöntemi tarafından Synchronized(Hashtable) döndürülen sarmalayıcı aracılığıyla yapılması gerekir.
Bir SortedList , koleksiyon değiştirilmediği sürece aynı anda birden çok okuyucuyu destekleyebilir. öğesinin iş parçacığı güvenliğini SortedListgaranti etmek için tüm işlemlerin yöntemi tarafından Synchronized(SortedList) döndürülen sarmalayıcı aracılığıyla yapılması gerekir.
Bir koleksiyonda numaralandırma, iş parçacığı güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.