Blazor,LINQ ORDER BY的带有季度和年份的字符串



我有一个Blazor Server.Net 6应用程序,我想使用LINQ来解析一个包含将在下拉列表中使用的季度-年份(count(的字符串。但我想先订一份最新的单子。由于它是一个字符串,我不能在LINQ 中使用正常的Order By

Example data:
Q4 – 2022 (7)
Q3 – 2022 (9)
Q2 – 2022 (10)
Q1 – 2022 (15)
Q4 – 2021 (18)
Q3 – 2021 (5)
Q2 – 2021 (4)
Q1 – 2021 (1)

有没有想过我如何订购这个字符串,这样数据就会总是出现在上面的顺序中

TIA-

只要数据格式一致,就可以使用OrderByThenBy以及Range

var data = new string[] {
"Q4 – 2022 (7)",
"Q3 – 2022 (9)",
"Q2 – 2022 (10)",
"Q1 – 2022 (15)",
"Q4 – 2021 (18)",
"Q3 – 2021 (5)",
"Q2 – 2021 (4)",
"Q1 – 2021 (1)"};
var orderedData = data.OrderBy(d=> d[5..9]).ThenBy(d => d[1..2]);

这是按位置6到9(年份(的字符排序,然后按位置1到2(季度(的字符进行排序。至关重要的是,数据始终与该模式相匹配,才能使其发挥作用

试试

相关内容

  • 没有找到相关文章

最新更新