Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 按特定顺序对SelectList排序_.net_Sorting_Selectlist - Fatal编程技术网

.net 按特定顺序对SelectList排序

.net 按特定顺序对SelectList排序,.net,sorting,selectlist,.net,Sorting,Selectlist,因此,我使用此方法生成了一个SelectList: public static SelectList HolidayDays() { SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet); //sort list (NY, London....then the rest in order) r

因此,我使用此方法生成了一个SelectList:

public static SelectList HolidayDays()
{
    SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet);

    //sort list (NY, London....then the rest in order)


    return retval;
}
public static SelectList HolidayDays()
{
选择List retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet);
//排序列表(纽约、伦敦……然后依次排序)
返回返回;
}
GenerateKeyValueList方法定义如下:

public static SelectList GenerateKeyValueList<T>(Func<T, string> nameGetter, T itemToNoInclude) where T : struct, IComparable, IConvertible
{
    List<SelectListItem> list = new List<SelectListItem>();

    var enumList = Enum.GetValues(typeof(T));

    foreach (var curr in enumList)
    {
        T t = (T)curr;
        if (t.Equals(itemToNoInclude) == false)
        {
            list.Add(new SelectListItem() { Text = nameGetter(t), Value = Convert.ToInt32(t).ToString() });
        }
    }
    return new SelectList(list, "Value", "Text");
}
public static SelectList GenerateKeyValueList(Func nameGetter,T itemToNoInclude),其中T:struct,IComparable,IConvertible
{
列表=新列表();
var enumList=Enum.GetValues(typeof(T));
foreach(枚举列表中的var curr)
{
T=当前(T)电流;
如果(t.Equals(itemToNoInclude)=false)
{
添加(新的SelectListItem(){Text=nameGetter(t),Value=Convert.ToInt32(t).ToString()});
}
}
返回新的SelectList(列表,“值”、“文本”);
}
在第一个列出的方法中,如何在注释中对列表进行排序。我希望列表中的第一个元素是“纽约”,第二个元素是“伦敦”,然后按字母顺序排列其余元素

list.OrderBy(i => i.Text == "New York")
    .ThenBy(i => i.Text == "London")
    .ThenBy(i => i.Text);
或者你可以写:

var items = from i in list
            orderby i.Text == "New York", i.Text == "London", i.Text descending
            select i;

我可以在第一种方法中的SelectList项上执行此操作吗?我不想碰convert方法。