Một vài câu trả lời đã được sắp xếp vài con số cuối cùng (có thể là đúng vì bạn chỉ hiển thị một danh sách đã được sắp xếp). Nếu bạn muốn các số "không được chọn" được hiển thị trong đơn hàng gốc , không nhất thiết phải sắp xếp thay vì được sắp xếp, bạn có thể thay thế;
int num = 3;
var result = list.Where(x => x == num).Concat(list.Where(x => x != num));
Như @DuaneTheriot chỉ ra, IEnumerable's extension method OrderBy hiện một loại ổn định và sẽ không thay đổi thứ tự của các yếu tố đó có một chìa khóa bằng nhau. Nói cách khác;
var result = list.OrderBy(x => x != 3);
hoạt động cũng như sắp xếp 3 trước và giữ nguyên thứ tự của tất cả các thành phần khác.
Nguồn
2012-03-29 21:48:34
@Tim Schmelter, nếu tôi muốn hiển thị 3 tại lat thì sao? – cracker
@cracker: thay đổi 'OrderByDescending' thành' OrderBy' hoặc 'i == 3' thành' i! = 3' –