Hãy tưởng tượng rằng bạn có một danh sách được gọi là List<Foo>
.Cách đặt danh sách theo loại?
Foo
là lớp trừu tượng, vì vậy, đây có thể là FooA
, FooB
, FooC
hoặc FooD
. Và tôi muốn có một phần mở rộng cho List<T>
, nơi bạn có thể đặt hàng các yếu tố này theo loại nhưng theo thứ tự.
Ví dụ: nếu tôi có 9 phần tử trong đó.
FooA, FooA, FooB, FooD, FooC, FooC, FooA, FooB, FooA
Sắp xếp theo loại liên tiếp sẽ là.
FooA, FooB, FooC, FooD, FooA, FooB, FooC, FooA, FooA
Tôi đang cố gắng rằng chức năng có thể được đặt theo lệnh bạn chỉ định, ở trường hợp này, IE, đó là:
new[] { typeof(FooA), typeof(FooB), typeof(FooC), typeof(FooD) }
Tôi đã cố gắng để tạo ra phần mở rộng này, nhưng tôi don 't nhận được bất cứ điều gì. Bạn có thể giúp một chút không? Tôi đoán rằng tôi có thể thực hiện nó với LINQ.
điều gì xảy ra nếu không có FooC trong danh sách hoặc có FooA, FooB, FooC, FooC, FooC, FooD, bạn sắp xếp như thế nào? tôi sẽ khuyên bạn nên thích ứng lựa chọn sắp xếp cho các mục đích của bạn. – DarthVader