0

I have the following code

public void example(Type t)
{
    var collector = (ICollection)Activator.CreateInstance(t);

    Debug.Log(collector);
}

this prints

System.Collections.Generic.List`1[System.Int32]
System.Collections.ArrayList

but I need to add elements


Explaining myself better

I have the type of ICollection, I need to take it to a generic structure that allows me to add or insert elements

public void example(Type t){

   var my_collector = new AnyClass((ICollection)Activator.CreateInstance(t));

   collector.Add(new element());
   //or
   collector.insert(new element(),0);
}

but, I'm not interested in printing the elements, this I did to show the types of collectors that will come. I'm only interested in adding or inserting elements in the new ICollector

Anyway, thanks for your answers

1 Answers1

0

You can't add elements to an ICollection. You'll need to downcast 'collector' to IList, Queue, or Stack:

switch (collector)
{
    case IList list:
        list.Add("something");
        break;
    case Queue queue:
        queue.Enqueue("something");
        break;
    case Stack stack:
        stack.Push("something");
        break;
}
Ridiculous
  • 443
  • 4
  • 9