0

Enumに基づいてViewModelを構築するためにWeb Apiを使用しています。このビュー モデルは 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 に答える