I had the same "what ..." the first time I saw new int[5][]; instead of new int[][5]; .
An EL (very nice) blog post dances around one thing: there is an ideal way to do this for people with a ComSci degree, but there is no good way to do it for others. If you just follow the grammar, you point from right to left, new from right to left and pointer from left to right:
// 1D array of 2D arrays, no special rules needed: int[,][] N; N=new[,][5]; N[0]=new int[4,4];
But the target audience of C # is not people with 4-year degrees of CS (who have all seen the reverse Polish language and love right to left.) The trick, IMHO, in the understanding of C # arrays with teeth, is that they decided to make special rules for them when they did not need technical support.
source share