tags:

views:

397

answers:

3

I have an array of custom objects. MyCustomArr[]. I want to convert this to System.Array so that I can pass it to a method that accepts only System.Array. The signature of the method is:

public void Load(Array param1, string param2)
{

}
+8  A: 

No conversion is needed for that as far as I know. You can simply go ahead and pass your array to the method. The following code works out well:

MyClass[] myClassArray = new MyClass[2];
myClassArray[0] = new MyClass();
myClassArray[1] = new MyClass();
Load(myClassArray, "some text");
Fredrik Mörk
A: 

You should just be able to cast it, but I think this will be done implicitly for you.

System.Array array = (System.Array)(new int[] { 1, 2, 3, 4 });
Bob
+1  A: 

What do you want to do with the array? The code below builds and runs, so I'm not sure where your problem lies:


public class MyClass
{
    public class MyObject 
    {
    }

    public static void RunSnippet()
    {
     MyObject[] objects = new MyObject[5];
     Test(objects); 
    }

    private static void Test(System.Array obj)
    {
     System.Console.WriteLine("Count: " + obj.Length.ToString());
    }
}

JMarsch