CA1814 : Utilisez des tableaux en escalier à la place de tableaux multidimensionnelsCA1814: Prefer jagged arrays over multidimensional

TypeNameTypeName PreferJaggedArraysOverMultidimensionalPreferJaggedArraysOverMultidimensional
CheckIdCheckId CA1814CA1814
CategoryCategory Microsoft.PerformanceMicrosoft.Performance
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Un membre est déclaré comme un tableau multidimensionnel.A member is declared as a multidimensional array.

Description de la règleRule Description

Un tableau en escalier est un tableau dont les éléments sont des tableaux.A jagged array is an array whose elements are arrays. Les tableaux qui composent les éléments peuvent être de différentes tailles, ce qui conduit à un gaspillage d'espace plus restreint pour certains groupes de données.The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data.

Comment corriger les violationsHow to Fix Violations

Pour corriger une violation de cette règle, changez le tableau multidimensionnel en tableau en escalier.To fix a violation of this rule, change the multidimensional array to a jagged array.

Quand supprimer les avertissementsWhen to Suppress Warnings

Supprimer un avertissement de cette règle si le tableau multidimensionnel ne gaspille pas d’espace.Suppress a warning from this rule if the multidimensional array does not waste space.

ExempleExample

L’exemple suivant montre des déclarations de tableaux en escalier et multidimensionnels.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}
                                };
    }
}