为什么我只在此IEnumerable<>中获取空值

时间:2012-08-10 18:29:13

标签: c# asp.net asp.net-mvc

我正在尝试使用db中的值填充此IEnumerable。

我看不出我做错了什么。

IEnumerable<Categories> categories = new List<Categories>();

List<SelectListItem> catItems = new List<SelectListItem>();

foreach (var cats in categories)
{
    catItems.Add(new SelectListItem
                     {
                         Text = cats.CategoryName,
                         Value = cats.CategoryID.ToString()
                     });
}

这是班级:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace SportsStore.Domain.Entities
{
    public class Categories
    {
        [Key]
        public int CategoryID { get; set; }
        public string CategoryName { get; set; }
    }

}

3 个答案:

答案 0 :(得分:7)

您只会初始化一个新的类别集合,但从未添加任何类别。

答案 1 :(得分:2)

您如何填写类别列表?这不仅仅是说......

IEnumerable<Categories> categories = new List<Categories>(); 

你需要以某种方式填充它。

答案 2 :(得分:0)

因为在这里你创建了一个新的(和空的)类别列表:

IEnumerable<Categories> categories = new List<Categories>();

在这里你尝试迭代空列表:

foreach (var cats in categories)
{

这意味着你永远不会向cat.Items添加任何东西