使用类似int的字符串对列表进行排序

Sam*_*ari -2 c# linq sorting list

我有一个List<Batch> batchesList new List<Batch>();带字段 string orderNo和对象的列表int lineNo

我打印"orderNo-lineNo"

我想按orderNo然后lineNo排序.我遇到的问题是使用l​​inq的sort(),这将排序为一个字符串,因此11AG131-13实际上会在11AG131-2之前出现

batchesList.Sort((x, y) => (x.orderNo + x.lineNo).CompareTo(y.orderNo + y.lineNo));
Run Code Online (Sandbox Code Playgroud)

感谢帮助

Max*_*xim 6

var sortedBatches = batchesList.OrderBy(b => b.orderNo)
                               .ThenBy(b => b.lineNo)
                               .ToList();
Run Code Online (Sandbox Code Playgroud)