可查询的order /GroupBy正则表达式

本文关键字:GroupBy 正则表达式 order 查询 | 更新日期: 2023-09-27 18:11:24

我有一个iquerable结果,其名称看起来像这样:

100lbs
10pts
150lbs
11pts
15pt
10pt

我想把结果按后面的字母分组,这样结果看起来更像这样:

100lbs
150lbs
10pt
15pt
10pts
11pts

是否可能/如何使用正则表达式来完成此操作?

可查询的order /GroupBy正则表达式

我不知道你的linq语句是什么样子的但是你可以尝试创建一个伪变量来对

进行排序像

somethink

var result =
    (from c in db.Table 
     select new 
     {
         mainresult = c.mainresult, 
         tempresult ==c.mainresult,
     }
    ).ToList().Select(c=>new{
      mainresult = c.mainresult, 
      tempresult=new string(c.mainresult
             .Where(!char.IsDigit).ToArray())})
    .OrderBy(c=>c.tempresult)
    .Select(c=>c.mainresult)
    .ToList();

var list = new List<string>();
            list.Add("100lbs");
            list.Add("10lbs");
            list.Add("10pts");
            var groupings = list.GroupBy((s)=>{
                if (s.EndsWith("lbs"))//you can use regex here 
                {
                    return "lbs";
                }
                else if (s.EndsWith("lbs"))
                {
                    return "pts";
                }
                return "none";
            },s=>s);
            foreach (var item in groupings)
            {
                item.key will have category "lbs"/"pts" 
            }