0

我正在使用 Web Api 来构建基于 Enum 的 ViewModel。此视图模型将发送 id 和名称。基本上我想用这个viewModel来使用dropdownList。

这是我的代码:工作正常,但我不想在 Web Api 中使用 ListItem。

// GET api/values
    public List<DropdownViewModel> Get()
    {
        List<DropdownViewModel> ddlList = new List<DropdownViewModel>();

        foreach (int r in Enum.GetValues(typeof(CountryEnum)))
        {
            ListItem item = new ListItem(Enum.GetName(typeof(CountryEnum), r), r.ToString());
            ddlList.Add(new DropdownViewModel
            {
                id = item.Value,
                name = item.Text                    
            });
        }

        return ddlList;
    }

任何人都可以在不使用 ListItem 的情况下重构此代码吗?

4

1 回答 1

1

Linq Select方法应该可以工作。

编辑:这只是表明,如果它没有经过测试,它就不起作用。这是经过测试的。它应该工作。

public List<DropdownViewModel> Get()
{
    return Enum.GetValues(typeof (CountryEnum)).Cast<int>()
        .Select(id => new DropdownViewModel
        {
            id = id,
            name = Enum.GetName(typeof (CountryEnum), id)
        }).ToList();
}
于 2013-04-17T00:09:54.343 回答