Partager via


Utilisez des tableaux en escalier à la place de tableaux multidimensionnels

Mise à jour : novembre 2007

TypeName

PreferJaggedArraysOverMultidimensional

CheckId

CA1814

Catégorie

Microsoft.Performance

Modification avec rupture

Oui

Cause

Un membre est déclaré en tant que tableau multidimensionnel.

Description de la règle

Un tableau en escalier est un tableau dont les éléments sont des tableaux. 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.

Comment corriger les violations

Pour corriger une violation de cette règle, changez le tableau multidimensionnel en tableau en escalier.

Quand supprimer les avertissements

Supprimez un avertissement de cette règle si le tableau multidimensionnel ne gaspille pas d'espace.

Exemple

L'exemple suivant présente des déclarations destinées à des tableaux en escalier et multidimensionnels.

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}
                                };
    }
}