1
ExpandoObject是否有任何便利的工厂方法?类似的东西,我不知道,ExpandoObject便利工厂?
dynamic disney = new ExpandoObject("First", "Donald", "Last", "Duck");
ExpandoObject是否有任何便利的工厂方法?类似的东西,我不知道,ExpandoObject便利工厂?
dynamic disney = new ExpandoObject("First", "Donald", "Last", "Duck");
不,没有,但你可以在几分钟内写出它。 :) 在这里你去:
C#
class Program
{
static void Main(string[] args)
{
dynamic ex = ExpandoFactory.Create("First", "Donald", "Last", "Duck");
Console.WriteLine(ex.First);
Console.WriteLine(ex.Last);
}
}
static class ExpandoFactory
{
internal static ExpandoObject Create(params string[] items)
{
//safety checks omitted for brevity
IDictionary<string, object> result = new ExpandoObject();
for (int i = 0; i < items.Length; i+=2)
{
result[items[i]] = items[i + 1];
}
return result as ExpandoObject;
}
}
当然,你应事先检查数组的基数。 我希望这可以帮助。
如果你使你的循环条件'i + 1
好点,谢谢! :)虽然,如果数组有奇数个元素,我会抛出一个异常。 –
你尝试过'dynamic disney = new ExpandoObject {First =“Donald”,Last =“Duck”};'?我很好奇它是否会起作用(我目前无法访问我的Windows工作站来检查它)。 – dasblinkenlight