Por que você precisa de uma matriz vazia? O que você está tentando fazer?
T. T.
7
@MrT. não é realmente relevante para a questão.
James
1
@ James - talvez haja uma maneira mais elegante de fazer o que ele está tentando fazer.
T. T.
4
@aquanat - embora uma resposta já tenha sido aceita e eu não conheça seu código ou a lógica por trás disso, sugiro humildemente que você não retorne uma matriz vazia, mas nula e verifique na função de chamada se o valor retornado é nulo ou não. Eu acho que seria muito mais elegante, legível e eficiente.
T. T.
2
O motivo pelo qual você não deseja retornar nulo é que o consumidor do método precisa procurar nulo. Por exemplo, o consumidor do método pode colocar o valor retornado em um foreach e, se uma matriz vazia for retornada, não haverá problema. No entanto, se null for retornado, será necessário verificar se há nulo antes de iterar o valor retornado
Obrigado a todos ... não me pergunte por que, mas o único caminho era: string [] arr = new String [0] as string [];
aquanat 30/05
2
O método de Atish trabalhou e eliminado do estúdio visuais reclamar sobre o uso de uma variável que não é inicializado se eu atribuí-lo em uma instrução if
Por que a string é maiúscula e não maiúscula nos seus exemplos?
caso.
1
@newStackExchangeInstance, apenas copiou o código "como está" da pergunta. Ambas as linhas compilam bem, embora eu concorde que seguir um estilo seja melhor.
Andrei
15
Se você estiver usando o .net 4.6, eles têm uma nova sintaxe que você pode usar:
using System;// To pick up definition of the Array class.var myArray =Array.Empty<string>();
Não há necessidade de editar esta resposta, pois as respostas servem ao propósito geral e não à pergunta específica por palavra. Ele responde "Qual é a sintaxe para declarar e inicializar uma matriz" e é uma citação do link que eu postei. OP pode substituir intcom stringse ele gosta.
CodeCaster
1
Sua sintaxe é inválida.
string[] arr =newstring[5];
Isso criará arruma matriz referenciada de cadeias, onde estão todos os elementos dessa matriz null. (Como strings são tipos de referência )
Essa matriz contém os elementos de arr[0]para arr[4]. O newoperador é usado para criar a matriz e inicializar os elementos da matriz com seus valores padrão. Neste exemplo, todos os elementos da matriz são inicializados null.
Respostas:
Tente isto
fonte
c# Array.Empty<string>()
Sua sintaxe está errada:
ou
fonte
Se você estiver usando o .net 4.6, eles têm uma nova sintaxe que você pode usar:
fonte
Você pode tentar isso
fonte
Os construtores de matrizes são diferentes. Aqui estão algumas maneiras de criar uma matriz de string vazia:
(desculpe, no celular)
fonte
Às vezes, essas coisas encaracoladas são difíceis de lembrar, é por isso que existe uma excelente documentação :
fonte
int
comstring
se ele gosta.Sua sintaxe é inválida.
Isso criará
arr
uma matriz referenciada de cadeias, onde estão todos os elementos dessa matriznull
. (Como strings são tipos de referência )Essa matriz contém os elementos de
arr[0]
paraarr[4]
. Onew
operador é usado para criar a matriz e inicializar os elementos da matriz com seus valores padrão. Neste exemplo, todos os elementos da matriz são inicializadosnull
.Single-Dimensional Arrays (C# Programming Guide)
fonte
Se você deve criar uma matriz vazia, você pode fazer isso:
Se você não sabe sobre o tamanho, então você também pode usar
List<string>
, bem comofonte
O seguinte deve funcionar bem.
fonte