【发布时间】:2009-03-25 08:35:25
【问题描述】:
我有一个需要订购的清单:
R1-1
R1-11
R2-2
R1-2
这需要订购:
R1-1
R1-2
R1-11
R2-2
目前我正在使用 C# Regex.Replace 方法并在字符串末尾出现单个数字之前添加一个 0,例如:
Regex.Replace(inString,@"([1-9]$)", @"0$2")
我确信有一个更好的方法可以做到这一点,我只是想不通。 有没有人用正则表达式对字母和数字字符串进行排序的好方法?
我已经使用下面 Greg 的方法来完成此操作,只是认为我应该添加我正在使用的代码以确保完整性:
public static List<Rack> GetRacks(Guid aisleGUID)
{
log.Debug("Getting Racks with aisleId " + aisleGUID);
List<Rack> result = dataContext.Racks.Where(
r => r.aisleGUID == aisleGUID).ToList();
return result.OrderBy(r => r.rackName, new NaturalStringComparer()).ToList();
}
【问题讨论】: