2009-07-30 3 views
0

Мне нужно передать список дней (число и имя) на представление!Массив или общая коллекция?

Каков наилучший способ сделать это?

Я думал о создании общей коллекции, но не уверен, как это сделать? или массив?

ответ

1
Dictionary<string, int> days = new Dictionary<string, int>(); 

days.Add("Sunday", 1); 

...

0

Для чего-то вроде этого вы можете использовать словарь ... простые пары ключ/значение

Dim d as New Dictionary(Of Integer, String) 
d.Add(0,"string2") 
' etc 
-2

Если бы я был только эти 2 варианта, я хотел бы использовать массив.

Поскольку массив неизменен. Вы не можете случайно «добавить» или «удалить» то, что должно быть в представлении. Это своего рода защитное программирование.

И вы все еще можете использовать foreach просто отлично .... так почему же коллекция? нет необходимости вообще.

+0

Массивы изменяемы. Вы можете использовать List.AsReadOnly, чтобы получить представление только для чтения списка для отправки в другом месте. –

+0

@Ben Lings Массив неизменен, когда используется * нормальным * способом. Я не сказал, что объекты, содержащиеся в массиве, не являются неизменными. И автор запрашивает либо Collection *, либо * массив ... как я сказал в первом предложении .... – chakrit

+0

Массивы являются постоянной длиной, но имеют изменяемые элементы. –

0

Вы действительно должны использовать IEnumerable<T>. Добавьте List<T> в ViewData, а затем бросьте его как IEnumerable<T> с другой стороны.

2

Почему не перечисление?

enum days 
{ 
    Monday = 1, 
    Tuesday = 2 
    ... 
} 
+1

есть перечисление в самой структуре для этого: DayOfWeek – Colin

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