如何将多个对象实例动态传递给另一个类。

时间:2017-05-25 21:35:41

标签: c# dictionary

我需要动态地将一个类的对象作为参数传递给其他类。我有以下代码必须自定义。

  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? 任何帮助将不胜感激 谢谢

1 个答案:

答案 0 :(得分:1)

IDictionary<TKey, TValue>接口对Values中包含的每个值都有一个IDictionary<TKey, TValue>属性,返回ICollection<TValue>

在包含System.Linq命名空间后,ICollection<T>接口获得扩展方法ToArray<T>(),该方法将集合转换为类型T的数组。 因此,您的问题的解决方案应该是以下几行:

i.abc = col.Values.ToArray();