Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Sử dụng ArrayList trong lập trình C#

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Smile Sử dụng ArrayList trong lập trình C#

    BÀN VỀ ARRAYLIST TRONG C#

    Array (mảng) có lẽ là 1 gia vị quá đỗi quen thuộc đối với chúng ta, từ 1 anh sinh viên năm nhất tập tễnh bước vào thế giới lập trình với ngôn ngữ Pascal, cho đến những bạn đang theo đuổi nghiệp coding như chúng ta. Ứng dụng của mảng trong các bài tập ở các ngôn ngữ C/C++ là rất lớn. Nhưng…có 1 điều khó khăn mà chúng ta gặp phải khi sử dụng chúng là sự hạn chế về kích thước cố định của mảng. Làm sao để giải quyết vấn đề này nhỉ?Có lẽ các bạn cũng đã có cách giải quyết cho riêng mình, riêng tôi,với việc C# cho ra đời “baby” ArrayList, tôi có vỗ ngực nói với bạn bè “he he,mình đã giải quyết được vấn đề kích thước của mảng rồi”.ArrayList ra đời đã giải quyết được khuyết điểm của mảng trong các ngôn ngữ đi trước nó. Nào, bây giờ chúng ta cùng nhau tìm hiểu “em bé” ArrayList có mặt mũi vuông tròn như thế nào nhé. LET’S GO!

    Trong C#, muốn thao tác với ArrayList, không có cách nào khác hơn là bạn phải dùng đến class ArrayList được xây dựng sẵn. Lớp ArrayList này cung cấp cho bạn những phương thức và thuộc tính cơ bản sau:

    PUBLIC PROPERTIES – CÔNG DỤNG
    Capacity : trả về hoặc cho thiết đặt số phần tử mà ArrayList có thể chứa.
    Count : cho biết số phần tử hiện có trong ArrayList
    IsFixedSize: trả về một trị bool cho biết liệu ArrayList mang kích thước cố định hay không
    IsReadOnly: trả về 1 trị bool cho biết liệu xem ArrayList thuộc loại ReadOnly hay không
    Item: trả về hoặc thiết đặt phần tử mảng về chỉ mục được chỉ định. Trên C#, thuộc tính này là indexer (bộ rảo chỉ mục) đối với class ArrayList

    PUBLIC METHODS – CÔNG DỤNG
    Add: thêm 1 đối tượng vào cuối ArrayList
    AddRange: thêm các phần tử của một Icolletion vào cuối ArrayList
    BinarySearch: sử dụng giải thuật binary search để xác định vị trí của một phần tử hoặc một phần trên ArrayList đã được sắp xếp
    Clear: xóa sạch ArrayList
    Clone: tạo 1 bản sao của ArrayList
    Contains: xác định 1 phần tử nào đó có nằm trong ArrayList hay không
    CopyTo: Sao chép ArrayList hoặc 1 phần tử nào đó sang mảng 1 chiều
    IndexOf: trả về zero-based index của sự xuất hiện đầu tiên của 1 trị trên ArrayList hoặc trên 1 phần mảng
    Insert: chèn thêm 1 phần tử vào ArrayList tại chỉ mục được chỉ định
    InsertRange: chèn các phần tử của 1 collection vào ArrayList tại chỉ mục được chỉ định
    LastIndexOf: trả về zero-based index của sự xuất hiện cuối cùng của 1 trị trên ArrayList hoặc trên 1 phần mảng
    Remove: gỡ bỏ sự xuất hiện đầu tiên của một specific object ra khỏi ArrayList
    RemoveAt: gỡ bỏ những phần tử tại chỉ mục được chỉ định của ArrayList
    RemoveRange: gỡ bỏ 1 khoảng phần tử từ ArrayList
    Reverse: đảo ngược thứ tự của các phần tử trên ArrayList.
    SetRange: sao chép các phần tử của một collection chồng lên 1 phần phần tử trên ArrayList
    Sort: sắp xếp các phần tử trên ArrayList hoặc trên 1 phần mảng
    ToArray: sao chép các phần tử của ArrayList về 1 bản dãy
    TrimToSize: thiết đặt khả năng về số phần tử hiện hành trên ArrayList

    Lưu ý: khi bạn tạo 1 ArrayList, bạn không thể xác định sẽ có bao nhiêu đối tượng trong mảng. Bạn thêm phần tử vào ArrayList bằng cách dùng hàm Add() và ô liệt kê sẽ tự mình lo việc “giữ sổ sách” nội bộ đúng tình trạng.
    Bạn cũng nên lưu ý 1 điều là sức chứa ban đầu mặc định của ArrayList là 16, do đó khi bạn thêm phần tử thứ 17 thì kích thước mặc định này sẽ tăng gấp đôi lên thành 32.

    Sau đây là 1 thí dụ đơn giản về ArrayList được lấy từ MSDN:
    Visual C# Code:
    1. using System;
    2. using System.Collections;
    3. public class SamplesArrayList  
    4. {
    5.  
    6.    public static void Main()  
    7.   {
    8.  
    9.       // tạo 1 thể hiện của ArrayList
    10.       ArrayList myAL = new ArrayList();
    11.       myAL.Add("Hello");
    12.       myAL.Add("World");
    13.       myAL.Add("!");
    14.  
    15.       // Hiển thị thuộc tính và giá trị trong ArrayList
    16.       Console.WriteLine( "myAL" );
    17.       Console.WriteLine( "    Count:    {0}", myAL.Count );
    18.       Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
    19.       Console.Write( "    Values:" );
    20.       PrintValues( myAL );
    21.    }
    22.  
    23.    public static void PrintValues( IEnumerable myList )  
    24.    {
    25.       foreach ( Object obj in myList )
    26.          Console.Write( "   {0}", obj );
    27.       Console.WriteLine();
    28.    }
    29.  
    30. }
    31.  
    32.  
    33. /*
    34. This code produces the following output.
    35.  
    36. myAL
    37.     Count:    3
    38.     Capacity: 16
    39.     Values:   Hello   World   !
    40.  
    41. */

    Kiến thức của mình còn hạn chế, nên những điều mà mình viết ra trên đây có thể còn quá nhỏ bé đối với những bạn đi trước. Thiết nghĩ, mình mong nhận được sự cộng tác của các bạn tương ứng với những tutorial này. Cám ơn các bạn nhiều

  2. #2
    Ngày gia nhập
    01 2009
    Bài viết
    1

    Mình có ý kiến nhỏ thế này: nếu bạn chỉ làm việc với string thì tốt hơn là dùng lớp StringCollection vì nó không phải cast, do đó tốc độ nhanh hơn. Hoặc bạn cũng có thể sử dụng những lớp Generic, nó cũng làm tăng hiệu năng của ứng dụng và rất an toàn khi chuyển đổi giữa các kiểu. Thân.

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Neverlan, theo mình biết thì bạn là người thích tìm tòi những công nghệ mới, đọc mấy bài của bạn bên vbclub mình thấy rất hay, mình sẽ theo dõi chi tiết các bài biết của bạn, nếu có điều kiện bạn post bài để anh em tham khảo học tập.
    thân !

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    9

    bạn đã có 1 bài viết hay nhưng không thật hoàng thiện vì hầu như mình thấy nó giống MSDN, mình nghĩ nếu bạn chú thích rõ hơn về đặc điểm của những hàm quan trọng trong arraylist thì sẽ tốt hơn

    1 vài ý kiến nho nhỏ

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi sathutinhoc Xem bài viết
    bạn đã có 1 bài viết hay nhưng không thật hoàng thiện vì hầu như mình thấy nó giống MSDN, mình nghĩ nếu bạn chú thích rõ hơn về đặc điểm của những hàm quan trọng trong arraylist thì sẽ tốt hơn

    1 vài ý kiến nho nhỏ
    Không cần thiết. Việc đi sâu tìm hiểu chi tiết là người lập trình viên tự tìm hiểu vì thông tin đã có trên MSDN kèm cả ví dụ luôn.
    None!

  6. #6
    Ngày gia nhập
    09 2009
    Bài viết
    1

    Mặc định Sử dụng ArrayList trong lập trình C#

    Mình khai báo ArrayList trong chương trình nhưng bị lổi không tìm thấy(The type or namespace name "ArrayList" could not be found). Có phải lúc sử dụng ArrayList phải khai báo thêm using gi nữa kô. Giúp mình với !

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi turn171717 Xem bài viết
    Mình khai báo ArrayList trong chương trình nhưng bị lổi không tìm thấy(The type or namespace name "ArrayList" could not be found). Có phải lúc sử dụng ArrayList phải khai báo thêm using gi nữa kô. Giúp mình với !
    Bạn phải using System.Collections;
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    07 2009
    Nơi ở
    KTX Đại học Quốc gia - TP HCM
    Bài viết
    252

    Nếu như chấm điểm thì mình vẫn chấm danh sách liên kết của C++ hơn. Danh sách liên kết trong C++ ngày xưa vừa nhỏ gọn vừa tiện sử dụng. Hoạt động nhanh nữa. Nếu cái nào cũng lôi đối tượng của Microsoft vào thì nó lãng phí tài nguyên máy tính quá. Bởi vì mấy cái đó là để dùng cho tất cả mọi người cho nên nó chắc chắn sẽ nặng hơn và có nhiều cái không cần thiết cho trường hợp cụ thể của mình.
    You are not what you believe. But if you believe, you'll be

  9. #9
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi ChuotNhat3k Xem bài viết
    Nếu như chấm điểm thì mình vẫn chấm danh sách liên kết của C++ hơn. Danh sách liên kết trong C++ ngày xưa vừa nhỏ gọn vừa tiện sử dụng. Hoạt động nhanh nữa. Nếu cái nào cũng lôi đối tượng của Microsoft vào thì nó lãng phí tài nguyên máy tính quá. Bởi vì mấy cái đó là để dùng cho tất cả mọi người cho nên nó chắc chắn sẽ nặng hơn và có nhiều cái không cần thiết cho trường hợp cụ thể của mình.
    Ngày xưa thì thế, giờ thì cái vấn đề nhanh hay chậm không còn là vấn đề làm con chip khủng với ram 3G cho 32 bít hoặc 8 G cho 64 bít chạy còn nhanh hơn cả mắt nhìn đấy...
    None!

  10. #10
    Ngày gia nhập
    03 2009
    Bài viết
    11

    Các bạn cho mình hỏi: ArryList có thể định kiểu cho các thành viên trong nó không.
    Hiện mình không định kiểu được nên mổi lần sử dụng phải ép kiểu rất mất thời gian.
    Nếu ArryList không định kiểu vậy còn kiểu dữ liệu nào có thể làm được không.
    Cảm ơn các bạn rất nhiều.
    Nothing is impossible.

Các đề tài tương tự

  1. Tổng 2 phân số trong mảng phân số (C# ArrayList)
    Gửi bởi tacm77 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-10-2013, 04:02 PM
  2. ADO.NET Cách đưa listview vào arraylist,từ arraylist hiển thị ra listview ai giúp giùm em?
    Gửi bởi michaelduy1989 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 24-06-2013, 11:26 AM
  3. Cách sử dụng ArrayList trong C# ?
    Gửi bởi superhot2008 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 26
    Bài viết cuối: 02-08-2010, 03:41 PM
  4. Dùng ArrayList trong chương trình tính tiền phòng khách sạn
    Gửi bởi nguyenlinhsv1 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 02-06-2010, 06:37 PM
  5. <Mảng Động>So sánh giữa các phần tử với nhau trong ArrayList
    Gửi bởi cSharp trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 09-02-2009, 10:13 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn