Cela ne devrait pas être trop difficile à écrire vous-même.
La chose à faire très attention est de savoir comment les tableaux peuvent être modifiés en tant que propriétés.
Quelque chose comme (code non testé très rude, mais devrait vous donner une idée):
public class ArrayRow<T> {
//add your own ..ctor etc
T[,] matrix; //don't make this public see http://msdn.microsoft.com/en-us/library/k2604h5s.aspx
public int Index { get; private set; }
//note that this will be a copy
public T[] GetValues() {
T[] retval = new T[matrix.GetLength(1)];
for (int i = 0; i < retval.Length; i++)
retval[i] = matrix[Index, i];
return retval;
}
public void SetValues(T[] values)
//..and so on, you get the idea
}
Ensuite, vous étendez le tableau:
public static ArrayExtensions {
public void SetRow<T> (this T[,] matrix, int rowIndex, T[] values) {
//check rowIndex in range and array lengths match
}
public ArrayRow<T> GetRow<T> (this T[,] matrix, int rowIndex) {
//check rowIndex in range
return new ArrayRow<T> (matrix, rowIndex);
}
}
Ensuite, vous pouvez compter sur le paramètre de type étant inférée .
« On peut être mis en œuvre tout le monde donc je ne dois-je besoin pour moi moi-même? » Peut-être que votre patron a besoin de trouver quelqu'un d'autre pour le faire. – RvdK
Des méthodes d'extension à de telles fins seraient très utiles, je suis d'accord. Cependant, ne voudriez-vous pas opérer sur des tableaux 2D, par ex. 'int [,]' et tel? – Noldorin
Oui. J'ai aussi besoin de ça. –