Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
You can use Array.GetUpperBound method Gets the index of the last element of the specified dimension in the array. and Array.GetLowerBound one accordingly. var arr = new int[,]{ { 1, 2 ...
Answer
#1: Initial revision
You can use [Array.GetUpperBound](https://docs.microsoft.com/en-us/dotnet/api/system.array.getupperbound?view=net-5.0) method > Gets the index of the last element of the specified dimension in the array. and [Array.GetLowerBound](https://docs.microsoft.com/en-us/dotnet/api/system.array.getlowerbound?view=net-5.0) one accordingly. ```csharp var arr = new int[,]{ { 1, 2 }, { 23, 42 } }; for (int i = arr.GetLowerBound(0); i <= arr.GetUpperBound(0); i++) { for (int j = arr.GetLowerBound(0); j <= arr.GetUpperBound(1); j++) { Console.Write($"{arr[i, j],3} "); } Console.WriteLine(); } ``` The key difference between this method and `Array.GetLength` one is that `GetUpperBound` can be used in case when bounds of an array are arbitrary: ```csharp var arrWithNonStandardBounds = Array.CreateInstance( typeof(ValueTuple<int, int>), new[] { 2, 2, }, new int[] { -1, -1 } ); var n = arrWithNonStandardBounds.GetUpperBound(0); var m = arrWithNonStandardBounds.GetUpperBound(1); for (int i = arrWithNonStandardBounds.GetLowerBound(0); i <= n; i++) { for (int j = arrWithNonStandardBounds.GetLowerBound(1); j <= m; j++) { arrWithNonStandardBounds.SetValue((i, j), i, j); Console.Write($"{arrWithNonStandardBounds.GetValue(i, j),5} "); } Console.WriteLine(); } ``` It's a rare case especially lately though.