我有一个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-
只要数据格式一致,就可以使用OrderBy
和ThenBy
以及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(季度(的字符进行排序。至关重要的是,数据始终与该模式相匹配,才能使其发挥作用
试试