尝试使用 LINQ 对每个元素以数值结尾的字符串数组进行排序时,了解默认排序行为至关重要。默认情况下,字符串根据 ASCII 值按字典顺序排序。因此,使用 OrderBy 排序会将字符串视为一个整体,从而导致意外排序,其中字母字符优先。
要纠正此问题并实现基于数值的精确排序,需要对数字进行填充排序键中的部分。通过创建使用正则表达式的自定义 PadNumbers 方法,数字部分将用零填充,以确保它们具有一致的长度以进行比较。这种填充技术使 LINQ 的 OrderBy 能够正确比较数字部分,从而实现所需的排序。
在提供的代码示例中,PadNumbers 方法应用于 partNumbers 数组中的每个字符串,并使用填充值作为排序键。这种方法保持原始字符串不变,但利用填充值进行精确的数值比较。
考虑数值超过定义的填充长度的情况非常重要。在这种情况下,默认的字典顺序将应用于溢出部分,这可能无法提供所需的顺序。
以上是如何使用 LINQ 按数字后缀对字母数字字符串进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!