WCF Operations and Multidimensional Arrays
        Posted  
        
            by JoshReuben
        on Geeks with Blogs
        
        See other posts from Geeks with Blogs
        
            or by JoshReuben
        
        
        
        Published on Wed, 16 Mar 2011 10:31:32 GMT
        Indexed on 
            2011/03/16
            16:11 UTC
        
        
        Read the original article
        Hit count: 412
        
You cant pass MultiD arrays accross the wire using WCF - you need to pass jagged arrays.
heres 2 extension methods that will allow you to convert prior to serialzation and convert back after deserialization:
public static T[,] ToMultiD<T>(this T[][] jArray) { int i = jArray.Count(); int j = jArray.Select(x => x.Count()).Aggregate(0, (current, c) => (current > c) ? current : c); var mArray = new T[i, j]; for (int ii = 0; ii < i; ii++) { for (int jj = 0; jj < j; jj++) { mArray[ii, jj] = jArray[ii][jj]; } } return mArray; } public static T[][] ToJagged<T>(this T[,] mArray) { var cols = mArray.GetLength(0); var rows = mArray.GetLength(1); var jArray = new T[cols][]; for (int i = 0; i < cols; i++) { jArray[i] = new T[rows]; for (int j = 0; j < rows; j++) { jArray[i][j] = mArray[i, j]; } } return jArray; }
enjoy!
© Geeks with Blogs or respective owner