解决方法
按照您想要的顺序创建一个大小的数组,然后按照该数组中大小的位置对衬衫进行排序:
string[] sizes = new [] {"XS","S","M","L","XL","XXL","UK 10","UK 12"}; var shirtsInorder = shirts .OrderBy(s=>sizes.Contains(s) ? "0" : "1") // put unmatched sizes at the end .ThenBy(s=>Array.IndexOf(sizes,s)) // sort matches by size .ThenBy(s=>s); // sort rest A-Z