Tôi đã rất ngạc nhiên khi phát hiện ra rằng không có cách nào trực tiếp để sắp xếp hoặc thực hiện tìm kiếm nhị phân trên một IList < T>. Cũng giống như có các phương pháp tĩnh để sắp xếp và thực hiện tìm kiếm nhị phân trên một mảng, tôi nghĩ rằng nó sẽ rất hữu ích để có các phương thức tĩnh tương tự có một IList < T>.Tại sao không có Sắp xếp cho IList <T>?!?! (đã chỉnh sửa)
Hiện tại:
class Array
{
static Sort<T>(T[] array);
static int BinarySearch<T>(T[] array, T item);
}
Tôi ước họ sẽ thêm:
class List
{
static Sort<T>(IList<T> list);
static int BinarySearch<T>(IList<T> list, T item);
}
Tôi liếc nhìn .NET Framework 4.0 Beta SDK và có vẫn không xuất hiện như một giải pháp cho vấn đề này.
tôi biết rằng tôi có thể làm việc này bằng cách tạo ra một phương pháp khuyến nông để kiểm tra nếu nó là một danh sách < T> và sau đó sắp xếp/tìm kiếm bằng cách sử dụng Danh sách < T> Ví dụ; tuy nhiên, nếu nó không phải là một thể hiện của một Danh sách < T>, thì tôi phải thực hiện một bản sao (mà stinks cho các danh sách rất lớn). Tôi biết tôi có thể làm tất cả những điều này, nhưng tại sao? Có lý do gì mà họ đã cố ý bỏ qua tính năng này không?
Để cố gắng thực hiện điều này trong .NET 4.0 Framework, tôi đã tạo một đề xuất qua chương trình Kết nối của Microsoft. Nếu bạn thất vọng như tôi về vấn đề này, hãy bỏ phiếu cho nó và có thể nó sẽ được thêm vào.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201
bạn có thể thuật lại cụm từ này thành câu hỏi hay không, có thể "Có lý do nào C# không có sẵn danh sách tìm kiếm và tìm kiếm nhị phân cho IList?" ngay bây giờ bạn chỉ là một tuyên bố và kêu gọi mọi người bỏ phiếu cho điều này trên trang web của microsoft, điều này có nguy cơ bị đóng cửa là thư rác –
Kip
Đó là loại ẩn giấu trong trò chơi, nhưng có một câu hỏi để giúp bạn tôi hiểu tại sao nó không có ở đó nếu Microsoft cố ý bỏ nó ra: "Có lý do gì mà họ đã cố ý bỏ qua tính năng này không?" – dewald
tràn ngăn xếp cũng là trang web câu hỏi/trả lời. đó là nghi thức tốt để tập trung hơn vào câu hỏi của bạn (đặc biệt là trong tiêu đề của câu hỏi). ngay bây giờ nó có vẻ như bạn đã giả định rằng đây là một lỗi, và bạn muốn người khác nói với microsoft bạn đồng ý. tinh thần của SO tốt hơn là làm rõ rằng câu hỏi là "có lý do chính đáng cho việc này hay đây là lỗi không?" – Kip