如果你堅持把你的方法輸入縮短到極限,我就和Ethan Brown一樣思考。這是一個使用params
來輸入字典元素的小程序。
class Program
{
static void Main(string[] args)
{
MyMethod("Key1", 1, "Key2", 2, "Key3", 3);
}
static void MyMethod(params object[] alternatingKeysValues)
{
var dictionary = AlternatingKeysValuesToDictionary(alternatingKeysValues);
// etc...
}
static Dictionary<string, object> AlternatingKeysValuesToDictionary(params object[] alternatingKeysValues)
{
if (alternatingKeysValues.Count() % 2 == 1)
throw new ArgumentException("AlternatingKeysValues must contain an even number of items.");
return Enumerable
.Range(1, alternatingKeysValues.Count()/2)
.ToDictionary(
i => (string)alternatingKeysValues.ElementAt(i * 2 - 2),
i => alternatingKeysValues.ElementAt(i));
}
}
這就是說,我認爲像Eric的回答實際上更好。在非常囉嗦的分配Dictionary<object, string>
的快捷方式可以讓您非常接近您的理想,而不會犧牲清晰度或由Dictionary
的內置集合初始值設定項提供的自然錯誤檢查。
我會去一個稍微清晰的措辭,但是:
using Dict = System.Collections.Generic.Dictionary<string, object>;
用法:
MyMethod(new Dict {{string1, value1},{string2, value2}});
更重要的是,與事,其實說明你的字典包含,例如,fruitPrices更換Dict
如果你的密鑰是FruitName
而你的值是Price
。
我認爲不可能,但我不知道 –
只是將它分成多行,或者添加新行 – Servy
爲什麼你要創造一百萬字典呢?你是單元測試嗎? –