# ArrayList

C# da ArrayList hajmi dinamik ravishda oshib boruvchi umumiy obyektlar to'plamidir.

Demak ArrayList ni dinamik massiv yaratish uchun foydalaniladi, ya'ni massiv hajmi sizning dasturingiz talabiga ko'ra avtomatik kattalashadi yoki kichiklashadi. **ArrayList**da faqat *Object* tipidagi elementlarni saqlash mumkin, demak, siz **ArrayList**dan sonlar, satrlar va boshqa tipdagi ma'lumotlarni, obyektlarni ham saqlashda foydalanishingiz mumkin

1-qadam. ArrayList dan foydalanish uchun `System.Collections` nomlar fazosini qo'shish kerak.

2- qadam. Endi ArrayList e'lon qilishni ko'rib chiqaylik:

```csharp
ArrayList  list=new ArrayList();
```

ArrayList qulayliklari bilan tanishamiz:

**Add()** funksiyasi orqali ArrayListga element qo'shishimiz mumkin.

**AddRange()** orqali ArrayList ga to'plam ham qo'shish mumkin.

**Count** ArrayList elementlari sonini aniqlab beradi.

**Remove()** ArrayList dan biror elementni o'chirish uchun ishlatiladi.

**RemoveAt()** ArrayListdan biror indexdagi elementni o'chirish uchun ishlatiladi.

**RemveRange(n,k)** ArrayListning n-indeksdan boshlab k ta elementlarini o'chirishda foydalaniladi.

**Clear()** ArrayListning barcha elementlarini o'chirish uchin ishlatiladi.

**Sort()** ArrayList elementlarini o'sish tartibida saralaydi.

Umuman olganda bu funksiyalar `System.Collections` dagi barcha to'plamlar uchun ishlaydi.

**Add()** funksiyasini ishlatishni ko'rib chiqaylik.

Misol1:

```csharp
using System; 
using System.Collections;  
namespace dotnetuz
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList dasturlash = new ArrayList();//dasturlash nomli Arraylist ochdik
            // element qo'shish
            dasturlash.Add("C#");
            dasturlash.Add("C++");
            dasturlash.Add("C");
            dasturlash.Add("Go");
            dasturlash.Add("Python");
            // foreach orqali listni chop etamiz
            foreach (var dastur in dasturlash)
            {
                Console.Write($"{dastur} ");
            }
        }
    }
}
```

Dastur natijasi:

```
C# C++ C Go Python 
```

Misol2:

Birinchi misolda biz bir turdagi elementlardan foydalandik. Umuman olganda ixtiyoriy turdagi elementlarni qo'shish mumkin. Uni quydagi misolda ko'ramiz.

```csharp
using System; 
using System.Collections;  
namespace dotnetuz
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList list=new ArrayList(); //list nomli ArrayList ochdik
            list.Add("dotnetuz");
            var list1 = new ArrayList()     //list1 nomli ArrayList
            {
                1.1,"Csharp",2021,true,null
            };
            int[] arr = { 7, 13, 45 };
            Queue queue1=new Queue();
            
            queue1.Enqueue("C++");
            list.AddRange(list1);   //listga list qo'shish
            list.AddRange(arr); //listga massiv qo'shish
            list.AddRange(queue1); //listga queue qo'shish
            for(int i=0;i<list.Count;i++)
                    Console.WriteLine(list[i]);
        }
    }
}
```

Dastur natijasi:

```
dotnetuz
1.1
Csharp
2021
True

7
13
45
C++
```

**Sort()** funksiyasining ishlatilishi:

Keling tushunish oson bo'lishi uchun 1- misolda Sort() funksiyasini ko'ramiz.

```csharp
using System;
using System.Collections;
namespace dotnetuz
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList dasturlash = new ArrayList();//dasturlash nomli Arraylist ochdik
            // element qo'shish
            dasturlash.Add("C#");
            dasturlash.Add("C++");
            dasturlash.Add("C");
            dasturlash.Add("Go");
            dasturlash.Add("Python");
            // foreach orqali listni chop etamiz
            foreach (var dastur in dasturlash)
            {
                Console.Write($"{dastur} ");
            }

            dasturlash.Sort();
            // for orqali chop etamiz

            System.Console.WriteLine();
            for (var i = 0; i < dasturlash.Count; i++)
            {
                Console.Write(dasturlash[i]+" ");
            }
        }
    }
}
```

Dastur natijasi:

```
C# C++ C Go Python 
C C# C++ Go Python
```

**ArayList**ning Sort() metodi *QuickSort* algoritmi bo'yicha saralaydi.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dot-net.uz/c-.net/basic/yuqori-daraja/toplamlar/arraylist.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
