D S*_*ley 18
按照您希望它们的顺序创建一个大小的数组,然后按照它们在该数组中的大小位置对衬衫进行排序:
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
Run Code Online (Sandbox Code Playgroud)