CA1814: Preferir irregulares de matrizes multidimensionais

TypeName

PreferJaggedArraysOverMultidimensional

CheckId

CA1814

<strong>Categoria</strong>

Microsoft.Performance

Alteração significativa

Quebrando

Causa

Um membro é declarado como uma matriz multidimensional.

Descrição da regra

Uma matriz denteada é uma matriz cujos elementos são matrizes. As matrizes que compõem os elementos podem ser de diferentes tamanhos, resultando em menos perda de espaço para alguns conjuntos de dados.

Como corrigir violações

Para corrigir uma violação desta regra, altere a matriz multidimensional para uma matriz denteada.

Quando suprimir avisos

Elimina um aviso esta regra se a matriz multidimensional não desperdiçar espaço.

Exemplo

O exemplo a seguir mostra as declarações para arrays irregulares e multidimensionais.

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