我需要动态地将一个类的对象作为参数传递给其他类。我有以下代码必须自定义。
ABC abc = new ABC();
abc.id = "E100";
abc.type = ABCType.BB_UNIQUE;
abc.typeSpecified = true;
ABC t = new ABC();
t.id = "I";
t.yellowkey = MarketSector.Equity;
t.yellowkeySpecified = true;
t.type = ABCType.t;
t.typeSpecified = true;
ABC abc2 = new ABC();
abc2.id = "GB";
abc2.type = ABCType.ISIN;
abc2.typeSpecified = true;
ABCs i = new ABCs();
i.abc = new abc[] { abc, abc2, t };
我能够如下动态创建类对象,但我无法将其传递给另一个类:
string value = "E100,I";
string[] id;
id = value.Split(',');
IDictionary<string, ABC> col = new Dictionary<string, ABC>();
foreach (string val in id)
{
col[val] = new ABC();
col[val].id = val;
}
ABCs i = new ABCs();
这部分是我在努力的地方 i.abc = new abc [] {abc,abc2,t}; 我如何能够将IDictionary的动态对象传递给i.abc? 任何帮助将不胜感激 谢谢
答案 0 :(得分:1)
IDictionary<TKey, TValue>
接口对Values
中包含的每个值都有一个IDictionary<TKey, TValue>
属性,返回ICollection<TValue>
。
在包含System.Linq
命名空间后,ICollection<T>
接口获得扩展方法ToArray<T>()
,该方法将集合转换为类型T
的数组。
因此,您的问题的解决方案应该是以下几行:
i.abc = col.Values.ToArray();