CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: C#

CollectionExtensions (For SelectList)

274 Views
Copy Code Show/Hide Line Numbers
public static class CollectionExtensions
{
    public static SelectList ToSelectList<T>(this IEnumerable<T> list,
                                             Func<T, string> value,
                                             Func<T, string> text)
    {
        return new SelectList(list.Select(x => new { Value = value(x), Text = text(x) }), "Value", "Text");
    }
 
    public static SelectList ToSelectList<T>(this IEnumerable<T> list,
                                             Func<T, string> value,
                                             Func<T, string> text,
                                             string firstValue,
                                             string firstText)
    {
        var firstSelectListItem = new { Value = firstValue, Text = firstText };
 
        var collection = (new[] { firstSelectListItem })
            .Concat(list.Select(x => new { Value = value(x), Text = text(x) }));
 
        return new SelectList(collection, "Value", "Text");
    }
 
    public static SelectList ToSelectList<T>(this IEnumerable<T> list,
                                             Func<T, string> value,
                                             Func<T, string> text,
                                             string selectedValue)
    {
        return new SelectList(list.Select(x => new { Value = value(x), Text = text(x) }), "Value", "Text", selectedValue);
    }
 
    public static SelectList ToSelectList<T>(this IEnumerable<T> list,
                                             Func<T, string> value,
                                             Func<T, string> text,
                                             string firstValue,
                                             string firstText,
                                             string selectedValue)
    {
        var firstSelectListItem = new { Value = firstValue, Text = firstText };
 
        var collection = (new[] { firstSelectListItem })
            .Concat(list.Select(x => new { Value = value(x), Text = text(x) }));
 
        return new SelectList(collection, "Value", "Text", selectedValue);
    }
 
    public static MultiSelectList ToMultiSelectList<T>(this IEnumerable<T> list,
                                                       Func<T, string> value,
                                                       Func<T, string> text,
                                                       IEnumerable<string> selectedValues)
    {
        return new MultiSelectList(list.Select(x => new { Value = value(x), Text = text(x) }), "Value", "Text", selectedValues);
    }
}
by Jon Erickson
  February 25, 2010 @ 12:12pm

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate