Resimler gönderiler için kullanışlıdır. Ancak mümkün olduğunca az ve / veya küçük resimler kullanmak gerekir.
Bilgisayardaki bir hata mesajı veya kodu resim olarak eklemek yerine kendisini
kopyalayıp yapıştırın.
Resimler gönderiler için kullanışlıdır. Ancak mümkün olduğunca az ve / veya küçük resimler kullanmak gerekir.
Bilgisayardaki bir hata mesajı veya kodu resim olarak eklemek yerine kendisini
kopyalayıp yapıştırın.
0
C# Dictionary nasıl sıralanır?
C#'da Dictionary sınıfını çokca kullanıyorum. Bayağı hızlı olduğunu düşünüyorum. Ancak verileri sıralı olarak almak gerekiyor. Sözlüğü anahtara veya değere göre nasıl sıralayabilirim?
Soran:13.04.16 13:32
misafir
0
C#
Dictionary sınıfının bir sıralama özelliği veya yöntemi yok. Ancak
Dictionary'nin yeni bir şekli olan
SortedDictionary ile değerlerin otomatik olarak anahtara göre sıralı halini elde edebilirsin. Ancak
SortedDictionary Dictionary sınıfından çok daha yavaş çalışıyor. Çok yoğun verilerle çalışıyorsanız tavsiye etmem. Bana göre
Dictionary kullanıp sonradan sıralı halini almak daha iyi bir seçim.
Yine de seçim sizin tabiki. Ben altta her ikisi için de örnekler vereceğim.
Bir Dictionary nesnesinin elemanlarına anahtara göre sıralı halde ulaşmak
static void Main(string[] args)
{
// Bir sözlük oluştur.
Dictionary dictionary = new Dictionary<string, int>();
// Sözlüğe bazı değerler ekle.
dictionary.Add("klavye", 22);
dictionary.Add("ekran", 11);
dictionary.Add("masa", 30);
dictionary.Add("sandalye", 5);
dictionary.Add("fare", 13);
// Anahtarları List sınıfından bir örneğe çevir
// (List<String> döndürür ama tiplerle uğraşmak istemezseniz değişkeni var ile tanımlayın)
var list = dictionary.Keys.ToList();
// List nesnesini sırala
list.Sort();
// Eğer anahtar adlarında Türkçe karakterler (çşğı vs.) listenin sıralamasını
// aşağıdaki gibi yapmalısınız.
// list.Sort(StringComparer.Create(new System.Globalization.CultureInfo("tr-TR"), true));
// Liste elemanlarını sıradan gezerek listedeki anahtara
// sahip olan değerleri yaz.
foreach (var key in list)
{
Console.WriteLine("{0}: {1}", key, dictionary[key]);
}
Console.ReadLine();
}
İkinci ve daha kısa bir yol.
static void Main(string[] args)
{
// Bir sözlük oluştur.
var dictionary = new Dictionary<string, int>();
// Sözlüğe bazı değerler ekle.
dictionary.Add("klavye", 22);
dictionary.Add("ekran", 11);
dictionary.Add("çasa", 30);
dictionary.Add("ıandalye", 5);
dictionary.Add("fare", 13);
// LINQ sorgusuyla anahtara göre sıralı bir liste (IEnumerable) oluştur.
var items = dictionary.OrderBy(i => i.Key);
foreach (var item in items)
{
Console.WriteLine("{0}: {1}", item.Key, item.Value);
}
Console.ReadLine();
}
Bir Dictionary nesnesinin elemanlarına değere göre sıralı halde ulaşmak (LINQ ve Lambda İfadeleri kullanarak)
static void Main(string[] args)
{
// Bir sözlük oluştur.
var dictionary = new Dictionary<string, int>();
// Sözlüğe bazı değerler ekle.
dictionary.Add("klavye", 22);
dictionary.Add("ekran", 11);
dictionary.Add("çasa", 30);
dictionary.Add("ıandalye", 5);
dictionary.Add("fare", 13);
// LINQ sorgusuyla sıralı bir liste (IEnumerable) oluştur.
var items = from pair in dictionary
orderby pair.Value ascending
select pair;
// Sonuçları göster
foreach (KeyValuePair<string, int> pair in items)
{
Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}
Console.ReadLine();
}
using kısmına System.Linq isim alanını dahil etmeyi unutmayın.
Veya daha kısa olarak şöyle yapılabilir.
static void Main(string[] args)
{
// Bir sözlük oluştur.
var dictionary = new Dictionary<string, int>();
// Sözlüğe bazı değerler ekle.
dictionary.Add("klavye", 22);
dictionary.Add("ekran", 11);
dictionary.Add("çasa", 30);
dictionary.Add("ıandalye", 5);
dictionary.Add("fare", 13);
// LINQ sorgusuyla anahtara göre sıralı bir liste (IEnumerable) oluştur.
var items = dictionary.OrderBy(i => i.Value);
foreach (var item in items)
{
Console.WriteLine("{0}: {1}", item.Key, item.Value);
}
Console.ReadLine();
}
Cevabı seçen: 08.06.16 00:02
canora101,387p
4ü
cevapsitesi.com'a katkınızdan dolayı teşekkür ederiz. Cevap yazarken lütfen şunlara dikkat edin:
Cevabınız açık ve net olmalıdır. Varsa alıntılar, bağlantılar, resim veya program kodu eklemelisiniz.
Eğer soru hakkında görüş bildirecekseniz veya cevap haricinde başka bir şey söylemek istiyorsanız yorum olarak yazın.
Tartışma çıkaracak cevaplardan kaçının, hitabınıza dikkat edin, "Kardeşim", "Arkadaşım" gibi ifadeler kullanmayın.
Eleştirmeyin. Sadece bilginizi gösterin ve fikrinizi söyleyin.
Büyük harf kullanmaktan ve cümle kurmaktan çekinmeyin. :)
Buraya yeni bir soru yazmayın, "benim de şöyle bir sorunum var" gibi eklemeler yapmayın. Sorunuz varsa yeni soru ekleyin.
ÜSLUP
ve SAYGI çok önemlidir. İnsanlar cevabınızdan çok üslubunuza dikkat ederler.
Cevabı, bir cevabın veya sorunun yorumu olarak dönüştürmek için ilgili cevabı veya soruyu tıklayın. [
İptal ]