TIPS-C# 3.0的Dictionary元素簡式宣告法
7 |
為了找記憶中依稀存在的C# 3.0 Dictionary元素簡式宣告法,耗了我快五分鐘,下定決心把它寫成一篇KB,以拯救中老年人日益衰退的記憶力。
public static void Test()
{
//要宣告固定元素的陣列,我們都知道可以簡寫成
string[] strAry = { "A", "B", "C", "D" };
//但要宣告固定元素Dictionary,傳統上只能一步一腳印
Dictionary<string, string> dctTradWay =
new Dictionary<string, string>();
dctTradWay.Add("Key1", "AAAA");
dctTradWay.Add("Key2", "BBBB");
dctTradWay.Add("Key3", "CCCC");
dctTradWay.Add("Key4", "DDDD");
//C# 3.0起,強化了Collection Initializer,所以...
Dictionary<string, string> dctNewWay =
new Dictionary<string, string>()
{
{"Key1", "AAAA"}, {"Key2", "BBBB"},
{"Key3", "CCCC"}, {"Key4", "DDDD"}
};
//很酷吧!
}
Comments
# by maxi326
會在甚麼樣的情況之下用到這種static的宣告呢?
# by Ark
中老年人被jQuery洗腦了,覺得寫程式就是要一行解決才較強阿 5分鐘一行寫出去後~讓別人得花3天還看不懂到底在寫啥 我還看過另一種"極端",宣告一堆變數後寫了好幾千行 仔細看你會發覺這幾千行跑了啥 大概要像這樣 A=OOXXYYZZ B=A C=B .... 最後 XX=YY 然後return XX 世間險惡~執行緒黑暗~這樣才能保障自己的工作阿~也是酷斃了
# by Tony
Ark, 你指的是老人家保身的方法吧,呵呵~人心險惡~
# by Jeffrey
to maxi326, 我較常見的一個例子是要讀DB建立一大張對照表,但其中有幾個寫死的選項,會先加入後,再跑迴圈塞入動態產生的元素。 to Ark, "幾千行程式最後return XX"-->感覺上是某種【人體混淆器】的產出結果,哈! 不過我喜歡程式碼簡潔(字少一點)是真的,這也是我偏愛C#多過VB.NET的理由之一。 to Tony, 你不懂長青組開發人員的心聲,降低打字數目可以減緩退化性關節炎的發生。
# by Phoenix
原來還可以連new都省略了, 長年養成的習慣讓我一直不敢跨越這一步, 又學到了一招了。
# by jIAn
C# 3.5 var dctNewWay = new Dictionary<string, string> { {"Key1", "AAAA"}, {"Key2", "BBBB"}, {"Key3", "CCCC"}, {"Key4", "DDDD"} };
# by jIAn
C#3.5 var dctNewWay = new Dictionary<string, string> { {"Key1", "AAAA"}, {"Key2", "BBBB"}, {"Key3", "CCCC"}, {"Key4", "DDDD"} };