public static int GetLength <T>(this T[,] matriu, DimensionMatriz dimension)
 {
     return(matriu.GetLength((int)dimension));
 }
示例#2
0
        //poder hacer que se pueda poner los valores en el orden contrario, de izquierda a derecha o  al rebes o por culumnas en vez de por filas...(y=0,x=0,y=1,x=0...)
        public static Tvalue[,] ToMatriu <Tvalue>(this IList <Tvalue> llista, int length, DimensionMatriz colocarTamañoGrandeEn = DimensionMatriz.Fila)
        {
            if (length < 1)
            {
                throw new ArgumentOutOfRangeException("Como minimo 1 " + colocarTamañoGrandeEn.ToString());
            }

            Tvalue[,] matriu;
            int numeroOtraDimension = (llista.Count / (length * 1.0)) > (llista.Count / length) ? (llista.Count / length) + 1 : (llista.Count / length);
            int contador            = 0;


            if (colocarTamañoGrandeEn.Equals(DimensionMatriz.Fila))
            {
                matriu = new Tvalue[numeroOtraDimension, length];
            }
            else
            {
                matriu = new Tvalue[length, numeroOtraDimension];
            }

            for (int y = 0; y < matriu.GetLength(DimensionMatriz.Y) && contador < llista.Count; y++)
            {
                for (int x = 0; x < matriu.GetLength(DimensionMatriz.X) && contador < llista.Count; x++)
                {
                    matriu[x, y] = llista[contador++];
                }
            }

            return(matriu);
        }
示例#3
0
 public static Tvalue[,] ToMatriu <Tvalue>(this IEnumerable <Tvalue> llista, int numeroDimension, DimensionMatriz dimensionTamañoMax = DimensionMatriz.Fila)
 {
     return(llista.ToArray().ToMatriu(numeroDimension, dimensionTamañoMax));
 }