[英]Added item to a list but it will not sort alphabetically
以下代碼用於創建我公司提供的服務的下拉列表。 這些服務正在從我們的數據庫中提取,我進行了硬編碼,並在列表中添加了一個名為“ 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;
}
正確的代碼:
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;
}
您在OrderBy
退貨時不做任何事情。 您可以立即返回OrderBy
的結果。 當您調用OrderBy
,它不會使傳入的現有列表發生突變。它會創建一個新的有序元素列表,並且您不會對其執行任何操作。
更多信息可以在這里找到
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.