C# 已将项添加到列表中,但它不会按字母顺序排序

C# 已将项添加到列表中,但它不会按字母顺序排序,c#,asp.net,.net,C#,Asp.net,.net,下面的代码用于创建我的公司提供的服务的下拉列表。这些服务是从我们的数据库中提取出来的,我硬编码并在列表中添加了一个名为SSN Trace的附加项。问题是该项仍然显示在列表的末尾,而不是按字母顺序与列表中的其他项一起出现。有人能帮忙吗 public List<SelectListItem> createProductsDropdownForTransReport() { var resultsOfProductsSearch = findAllB

下面的代码用于创建我的公司提供的服务的下拉列表。这些服务是从我们的数据库中提取出来的,我硬编码并在列表中添加了一个名为SSN Trace的附加项。问题是该项仍然显示在列表的末尾,而不是按字母顺序与列表中的其他项一起出现。有人能帮忙吗

public List<SelectListItem> createProductsDropdownForTransReport()
        {
            var resultsOfProductsSearch = findAllByEnumSet(EnumLookup.EnumSetType.SterlingWestProducts);

            var transanctionsReportProducts = resultsOfProductsSearch
                .Where(el => el.Ordinal != 95 && el.Ordinal != 253)
                .Select(el => new SelectListItem { Text = el.Text, Value = el.Text })
                .OrderBy(el => el.Text)
                .ToList();

            transanctionsReportProducts.Add(new SelectListItem { Text = "SSN Trace", Value = "SSN Trace" }); 

            var allTransReportProductsOption = new SelectListItem
            {
                Text = "All",
                Value = String.Join(" | ", transanctionsReportProducts.Select(x => x.Text)) 
        };

            transanctionsReportProducts.Insert(0, allTransReportProductsOption);

            transanctionsReportProducts.OrderBy(el => el.Text);

            return transanctionsReportProducts;
        }
正确代码:


您在OrderBy退货时没有做任何事情。您可以立即返回OrderBy的结果。当您调用OrderBy时,它不会改变您传入的现有列表。它创建了一个新的有序元素列表,而您并没有对其执行任何操作

可以找到更多信息


您在OrderBy退货时没有做任何事情。您可以立即返回OrderBy的结果。当您调用OrderBy时,它不会改变您传入的现有列表。它创建了一个新的有序元素列表,而您并没有对其执行任何操作

可以找到更多信息


可以试试这个吗?transanctionsReportProducts=transanctionsReportProducts.OrderByel=>el.Text;可以试试这个吗?transanctionsReportProducts=transanctionsReportProducts.OrderByel=>el.Text;您是说更改我的return语句以反映您的代码段吗?在执行OrderByGood捕获时,请删除现有的return并添加return。顺便说一句,我想你也会想打电话给它。@EJoshuaS不,他没有。尽可能多的回报是不可数的。如有必要,让调用者填写收费表。@ll fair point-我不确定我是否同意,但你肯定可以证明这一点。你是说更改我的return语句以反映你的代码段吗?删除现有的return,并在执行OrderByGood捕获时添加return。顺便说一句,我想你也会想打电话给它。@EJoshuaS不,他没有。尽可能多的回报是不可数的。如果需要,让打电话的人填写收费表。@ll fair point-我不确定我是否同意,但你肯定可以证明这一点。
public IEnumerable<SelectListItem> createProductsDropdownForTransReport()
        {
            var resultsOfProductsSearch = findAllByEnumSet(EnumLookup.EnumSetType.SterlingWestProducts);

            var transanctionsReportProducts = resultsOfProductsSearch
                .Where(el => el.Ordinal != 95 && el.Ordinal != 253)
                .Select(el => new SelectListItem { Text = el.Text, Value = el.Text }).ToList();



            transanctionsReportProducts.Add(new SelectListItem { Text = "SSN Trace", Value = "SSN Trace" });

            transanctionsReportProducts = transanctionsReportProducts.OrderBy(el => el.Text).ToList();

            var allTransReportProductsOption = new SelectListItem
            {
                Text = "All",
                Value = String.Join(" | ", transanctionsReportProducts.Select(x => x.Text)) 
        };

            transanctionsReportProducts.Insert(0, allTransReportProductsOption);

            return transanctionsReportProducts;
        }
public IEnumerable<SelectListItem> createProductsDropdownForTransReport()
{
    var resultsOfProductsSearch = findAllByEnumSet(
        EnumLookup.EnumSetType.SterlingWestProducts);

    var transanctionsReportProducts = resultsOfProductsSearch
        .Where(el => el.Ordinal != 95 && el.Ordinal != 253)
        .Select(el => new SelectListItem { Text = el.Text, Value = el.Text })
        .OrderBy(el => el.Text)
        .ToList();

    transanctionsReportProducts.Add(new SelectListItem { 
        Text = "SSN Trace", Value = "SSN Trace" }); 

    var allTransReportProductsOption = new SelectListItem
    {
        Text = "All",
        Value = String.Join(" | ", transanctionsReportProducts.Select(x => x.Text)) 
    };

    transanctionsReportProducts.Insert(0, allTransReportProductsOption);

    return transanctionsReportProducts.OrderBy(el => el.Text);
}