将IDictionary <guid,string>转换为IEnumerable <selectlistitem> </selectlistitem> </guid,string>

时间:2014-02-07 14:38:47

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

如何将IDictionary<Guid,string>转换为IEnumerable<SelectListItem>? 我想将字符串用作SelectListItem

4 个答案:

答案 0 :(得分:2)

可以只使用

dictionary.Values().Select(x => new SelectedListItem { Text = x })

请注意,它可能不是一个有用的顺序:Dictionary<,>本质上是无序的(或者更确切地说,顺序可能会改变,不应该被依赖)。

答案 1 :(得分:2)

如果您想使用guid作为值,可以使用

dictionary.Select(x => new SelectListItem  { Text = x.Value, Value = x.Key })

答案 2 :(得分:0)

这样的事情应该做你想做的事情:

var selectList = dictionary
    .OrderBy(kvp => kvp.Value) // Order the Select List by the dictionary value
    .Select(kvp => new SelectListItem
    {
        Selected = kvp.Key == model.SelectedGuid, // optional but would allow you to maintain the selection when re-displaying the view
        Text = kvp.Value,
        Value = kvp.Key
    })
    .ToList();

答案 3 :(得分:0)

使用LINQ,您可以执行类似的操作,

var theSelectList = from dictItem in dict
                    select new SelectListItem()
                    {
                        Text = dictItem.Value,
                        Value = dictItem.Key.ToString()
                    };