2014-11-09 3 views
-4

Я пытаюсь создать новый класс, который содержит массив, но размер его не должен быть постоянным.C# - Установить размер массива

Предположим, у меня есть Program.cs, и у меня есть другой класс под названием Category.cs.

Category.cs выглядит следующим образом:

class Category 
    { 
     static int MemberCount = 2; 

     private string[] ids = new string[MemberCount]; 

     public string[] Ids 
     { 
      get { return ids; } 
      set { ids = value; } 
     } 
... 

Моя цель состоит в том, чтобы каким-то образом изменить MemberCount, когда я создаю новый объект из этого класса ...

Я надеюсь, что это имеет смысл ...

Спасибо! :-)

+6

Вы хотите «Список '. – SLaks

+3

В частности, если массив не имеет фиксированного размера, лучше использовать список – Steve

+0

Спасибо. Можете ли вы привести мне пример, кому я могу использовать List в этом случае? – j0zyv

ответ

1

Предполагая, что вы на самом деле хочет/должен использовать массив с фиксированной длиной во время строительства объекта (в отличие сказать List<T> мудро предложенным в комментариях), вы можете добавить конструктор:

class Category 
{ 
    private readonly string[] ids; 

    public string[] Ids 
    { 
     get { return ids; } 
    } 

    public Category(int memberCount) { 
     ids = new string[memberCount]; 
    } 
} 

Обратите внимание, что я удалил setter в свойстве Ids, так как в противном случае массив может быть перезаписан с помощью любой из произвольной длины. Аналогично, я сделал ids только для чтения.

+0

Отлично, спасибо! – j0zyv

0

Используйте generic list или другой коллекционный класс.

class Category 
{ 
    public List<string> Ids { get; set; } 

    Category() 
    { 
     Ids = new List<string>(); 
    } 
} 
0

Вы можете изменить размер массива с помощью этого method: Array.Resize (ref ids, newSizeOfArray);

Смежные вопросы