Blazor,LINQ ORDER BY of String with Quarter and Year
Blazor, LINQ ORDER BY of String with Quarter and Year
我有一个 Blazor Server .Net 6 应用程序,我想使用 LINQ 来解析包含将在下拉列表中使用的季度 - 年份(计数)的字符串。但我想先订购最新的列表。因为它是一个字符串,所以我不能在 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(季度)的字符排序。
数据始终与该模式匹配对于此工作至关重要。
我有一个 Blazor Server .Net 6 应用程序,我想使用 LINQ 来解析包含将在下拉列表中使用的季度 - 年份(计数)的字符串。但我想先订购最新的列表。因为它是一个字符串,所以我不能在 LINQ
中使用普通的 Order ByExample 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(季度)的字符排序。 数据始终与该模式匹配对于此工作至关重要。