24 Temmuz 2009, Cuma
Sözlük< için bir öğe ekleyerek daha zarif bir şekilde;&yok gt; güvenli mi?
Bir sözlük için anahtar/nesne çiftleri eklemek istiyorum, ama ben tabii ki, anahtarı zaten ben aksi varsa ilk kontrol gerekir "anahtar zaten sözlük var
Böyle dize yardımcı yöntemi yapmadan bunu yapmanın daha zarif bir yolu nedir?
using System;
using System.Collections.Generic;
namespace TestDictStringObject
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, object> currentViews = new Dictionary<string, object>();
StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view1");
StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view2");
StringHelpers.SafeDictionaryAdd(currentViews, "Employees", "view1");
StringHelpers.SafeDictionaryAdd(currentViews, "Reports", "view1");
foreach (KeyValuePair<string, object> pair in currentViews)
{
Console.WriteLine("{0} {1}", pair.Key, pair.Value);
}
Console.ReadLine();
}
}
public static class StringHelpers
{
public static void SafeDictionaryAdd(Dictionary<string, object> dict, string key, object view)
{
if (!dict.ContainsKey(key))
{
dict.Add(key, view);
}
else
{
dict[key] = view;
}
}
}
}
CEVAP
24 Temmuz 2009, Cuma
Sadece dizin oluşturucu kullanın - eğer zaten varsa üzerine yazılır, ama değilvarorada birinci olmak:
Dictionary<string, object> currentViews = new Dictionary<string, object>();
currentViews["Customers"] = "view1";
currentViews["Customers"] = "view2";
currentViews["Employees"] = "view1";
currentViews["Reports"] = "view1";
Eğer anahtarın varlığını bir hata atmak istiyorsun () ve dizin yoksa gösterirse temelde Add
kullanın. (Referans dönüşümler için as
döküm kullanmak arasındaki fark gibi bir şey.)
C# 3 kullanıyorsanızve tuşları farklı bir dizi varbu bile daha güzel olun:
var currentViews = new Dictionary<string, object>()
{
{ "Customers", "view2" },
{ "Employees", "view1" },
{ "Reports", "view1" },
};
Bu koleksiyon başlatıcılar her zaman olduğu gibi senin durumunda olsa bile işe yaramaz Customers
ikinci giriş atmak Add
.
Bunu Paylaş:
Daha zarif bir şekilde bu kodu daha Ja...
En zarif şekilde, string Python boş ol...
Şu ya da bu şekilde daha güvenli OLSUN...
Zarif bir şekilde belirli kod bloğu il...
#ifdef vs #etkinleştirilmesi/kod belir...