我有一个IQueryable结果,其名称看起来像这样:
100lbs
10pts
150lbs
11pts
15pt
10pt
我想通过尾随字母对结果进行分组,以便结果看起来更像这样:
100lbs
150lbs
10pt
15pt
10pts
11pts
是否有可能/我如何使用Regex来实现这一目标?
答案 0 :(得分:0)
我不知道您的linq语句是什么样的,但您可以尝试做的是创建一个伪变量,仅用于排序
有些想法
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();
答案 1 :(得分:-1)
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"
}