Prefer jagged arrays over multidimensional
TypeName |
PreferJaggedArraysOverMultidimensional |
CheckId |
CA1814 |
Category |
Microsoft.Performance |
Breaking Change |
Breaking |
Cause
A member is declared as a multidimensional array.
Rule Description
A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data.
How to Fix Violations
To fix a violation of this rule, change the multidimensional array to a jagged array.
When to Exclude Warnings
Exclude a warning from this rule if the multidimensional array does not waste space.
Example
The following example shows declarations for jagged and multidimensional arrays.
Imports System
Public Class ArrayHolder
Private jaggedArray As Integer()() = {New Integer() {1, 2, 3, 4}, _
New Integer() {5, 6, 7}, _
New Integer() {8}, _
New Integer() {9}}
Private multiDimArray As Integer(,) = {{1, 2, 3, 4}, _
{5, 6, 7, 0}, _
{8, 0, 0, 0}, _
{9, 0, 0, 0}}
End Class
using System;
namespace PerformanceLibrary
{
public class ArrayHolder
{
int[][] jaggedArray = { new int[] {1,2,3,4},
new int[] {5,6,7},
new int[] {8},
new int[] {9}
};
int [,] multiDimArray = {{1,2,3,4},
{5,6,7,0},
{8,0,0,0},
{9,0,0,0}
};
}
}