public static int GetLength <T>(this T[,] matriu, DimensionMatriz dimension) { return(matriu.GetLength((int)dimension)); }
//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); }
public static Tvalue[,] ToMatriu <Tvalue>(this IEnumerable <Tvalue> llista, int numeroDimension, DimensionMatriz dimensionTamañoMax = DimensionMatriz.Fila) { return(llista.ToArray().ToMatriu(numeroDimension, dimensionTamañoMax)); }