I tried C# sorting order that has number and character.
List<EmployeesSTPList> employeeList = new List<EmployeesSTPList>();
employeeList.Add(new EmployeesSTPList { ID = "2", Name = "Employee 2" });
employeeList.Add(new EmployeesSTPList { ID = "1", Name = "Employee 1" });
employeeList.Add(new EmployeesSTPList { ID = "3", Name = "Employee 3" });
employeeList.Add(new EmployeesSTPList { ID = "10", Name = "Employee 10" });
employeeList.Add(new EmployeesSTPList { ID = "EMP002", Name = "Employee 02" });
employeeList.Add(new EmployeesSTPList { ID = "EMP003", Name = "Employee 03" });
employeeList.Add(new EmployeesSTPList { ID = "11", Name = "Employee 11" });
employeeList.Add(new EmployeesSTPList { ID = "4", Name = "Employee 4" });
employeeList.Add(new EmployeesSTPList { ID = "EMP010", Name = "Employee 010" });
employeeList.Add(new EmployeesSTPList { ID = "EMP001", Name = "Employee 01" });
employeeList.Add(new EmployeesSTPList { ID = "EMP011", Name = "Employee 011" });
employeeList = employeeList.OrderBy(a => a.ID, StringComparer.Ordinal).ToList();
foreach (var item in employeeList)
{
<div> @item.ID</div>
}
Output is:
1
10
11
2
3
4
EMP001
EMP002
EMP003
EMP010
EMP011
But expected as,
1
2
3
4
10
11
EMP001
EMP002
EMP003
EMP010
EMP011
I have already tried the same with string[]
using StringComparer.Ordinal which is working fine. But my model data contains in list.