آرایه ها در سی شارپ (arrays)

آرایه ها در سی شارپ (arrays)

زمان مطالعه

5 دقیقه

تعداد بازدید

444

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :

نکات سی شارپ

اشتراک گذاری این مطلب

ایجاد آرایه

به جای اینکه متغیرهای جداگانه ای برای هر مقدار اعلام کنند ، از آرایه ها برای ذخیره مقادیر متعدد در یک متغیر استفاده می شود.

در برنامه نویسی به زبان سی شارپ برای اعلام یک آرایه ، نوع متغیر را با براکت مربع تعریف کنید:

string[] cars;

ما اکنون متغیری را اعلام کرده ایم که مجموعه ای از رشته ها را در خود نگه می دارد.

برای درج مقادیر به آن ، می توانیم از یک آرایه به معنای واقعی استفاده کنیم - مقادیر را در یک لیست جدا شده با کاما ، در داخل آکولاد قرار دهید:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

برای ایجاد یک آرایه از اعداد صحیح ، می توانید بنویسید:

int[] myNum = {10, 20, 30, 40};

دسترسی به عناصر یک آرایه

با مراجعه به شماره شاخص به یک عنصر آرایه دسترسی پیدا می کنید.

این عبارت به مقدار اولین عنصر در اتومبیل ها دسترسی پیدا می کند:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars[0]);

توجه: شاخص های آرایه با 0 شروع می شوند: [0] اولین عنصر است. [1] عنصر دوم و غیره است.

تغییر عنصر یک آرایه

برای تغییر مقدار یک عنصر خاص ، به شماره شاخص مراجعه کنید:

cars[0] = "Opel";
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
Console.WriteLine(cars[0]);

طول آرایه

برای اینکه بفهمید یک آرایه چند عنصر دارد ، از ویژگی Length استفاده کنید:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars.Length);

دسترسی به عناصر آرایه از طریق حلقه

می توانید به عناصر آرایه را با حلقه for دسترسی داشته باشید و از ویژگی Length برای تعیین تعداد دفعات اجرای حلقه استفاده کنید.

مثال زیر همه عناصر موجود در آرایه اتومبیل را تولید می کند:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.Length; i++) 
{
  Console.WriteLine(cars[i]);
}

حلقه foreach

یک حلقه foreach نیز وجود دارد که منحصراً برای حلقه زدن بین عناصر موجود در یک آرایه استفاده می شود:

foreach (type variableName in arrayName) 
{
  // code block to be executed
}

مثال زیر با استفاده از حلقه foreach تمام عناصر موجود در آرایه اتومبیل را خروجی می دهد:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars) 
{
  Console.WriteLine(i);
}

مثال بالا را می توان اینگونه خواند: برای هر عنصر رشته (که i نامیده می شود - مانند شاخص) در اتومبیل ها ، مقدار i را چاپ کنید.

اگر حلقه for و foreach را مقایسه کنید ، می بینید که نوشتن روش foreach راحت تر است ، نیازی به شمارنده ندارد (با استفاده از ویژگی Length) و خوانایی بیشتری دارد.

مرتب سازی آرایه ها

روشهای زیادی برای مرتب سازی آرایه ها وجو دارد ، به عنوان مثال Sort ، که یک آرایه را به ترتیب حروف الفبا یا به ترتیب صعودی مرتب می کند:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Array.Sort(cars);
foreach (string i in cars)
{
  Console.WriteLine(i);
}
int[] myNumbers = {5, 1, 8, 9};
Array.Sort(myNumbers);
foreach (int i in myNumbers)
{
  Console.WriteLine(i);
}

System.Linq Namespace

سایر متد های مفید آرایه ، مانند Min ، Max و Sum را می توانید از طریق کلاس System.Linq استفاده کنید.

using System;
using System.Linq;

namespace MyApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      int[] myNumbers = {5, 1, 8, 9};
      Console.WriteLine(myNumbers.Max());  // returns the largest value
      Console.WriteLine(myNumbers.Min());  // returns the smallest value
      Console.WriteLine(myNumbers.Sum());  // returns the sum of elements
    }
  }
}

 

راه های دیگر ایجاد آرایه

اگر با C# آشنایی داشته باشید ، ممکن است آرایه هایی را با کلمه کلیدی جدید ایجاد کرده باشید و آرایه هایی با اندازه مشخص را نیز مشاهده کرده باشید. در C# روش های مختلفی برای ایجاد یک آرایه وجود دارد:

// Create an array of four elements, and add values later
string[] cars = new string[4];

// Create an array of four elements and add values right away 
string[] cars = new string[4] {"Volvo", "BMW", "Ford", "Mazda"};

// Create an array of four elements without specifying the size 
string[] cars = new string[] {"Volvo", "BMW", "Ford", "Mazda"};

// Create an array of four elements, omitting the new keyword, and without specifying the size
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

این شما هستید که کدام گزینه را انتخاب می کنید. در آموزش ما ، اغلب از آخرین گزینه استفاده خواهیم کرد ، زیرا خواندن آن سریعتر و راحت تر است.

با این حال ، باید توجه داشته باشید که اگر آرایه ای را اعلام کنید و بعداً مقداردهی اولیه کنید ، باید از کلمه کلیدی جدید استفاده کنید:

// Declare an array
string[] cars;

// Add values, using new
cars = new string[] {"Volvo", "BMW", "Ford"};

// Add values without using new (this will cause an error)
cars = {"Volvo", "BMW", "Ford"};

در ادامه یکسری تمرین برای شما حل کرده ایم تا بتوانید با موضوع آرایه ها بیشتر آشنا شوید

جمع کل خانه های آرایه:

using System;
using System.Collections.Generic;
using System.Text;

namespace CharCounter
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = new int[] {1,2, 1, 5, 4, 3, 6, 9, 3, 8, 1};
            int a = 0;
            if (array.Length!=0)
            {
               
            for (int i = 0; i < array.Length; i++)
            {
                    a += array[i];
            }
            }
               
        }
    }
}

مرتب کردن و چاپ ارایه:

using System;
using System.Collections.Generic;
using System.Text;

namespace CharCounter
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = new int[] { 3, 1, 4, 5, 2 };
            Array.Sort<int>(array,
                            new Comparison<int>(
                                    (i1, i2) => i1.CompareTo(i2)
                            ));
            foreach (var item in array)
            {
                Console.WriteLine(item);
            }
        }
    }
}

کپی کردن ارایه در ارایه دیگر:

using System;

class Program
{
    static void Main()
    {

        int[] source = new int[5];
        source[0] = 1;
        source[1] = 2;
        source[2] = 3;
        source[3] = 4;
        source[4] = 5;


        int[] target = new int[5];


        Array.Copy(source, target, 5);


        foreach (int value in target)
        {
            Console.WriteLine(value);
        }
    }
}

پیدا کردن عناصر تکراری:

using System;

public class DuplicateCharacters
{
    public static void Main()
    {
       
        int count;

        int[] string1 =new int[] {1,1,2,3,4,4,5,6} ;

        Console.WriteLine("Duplicate characters in a given string: ");
        for (int i = 0; i < string1.Length; i++)
        {
            count = 1;
            for (int j = i + 1; j < string1.Length; j++)
            {
                if (string1[i] == string1[j] && string1[i] != ' ')
                {
                    count++;
                    string1[j] = '0';
                }
            }
            if (count > 1 && string1[i] != '0')
                Console.WriteLine(string1[i]);
        }
    }
}

حذف عناصر تکراری :

using System;
using System.Linq;

public class DuplicateCharacters
{
    public static void Main()
    {
        int[] s = { 1, 2, 3, 3, 4 };
        int[] q = s.Distinct().ToArray();
        foreach (var item in q)
        {
            Console.WriteLine(item);
        }

    }
}

به دست اوردن بزرگترین و کوچکترین عدد ارایه:

using System;
using System.Linq;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = new int[10];
            Console.WriteLine("enter the array elements to b sorted");
            for (int i = 0; i < 10; i++)
            {
                array[i] = Convert.ToInt32(Console.ReadLine());
            }
            int smallest = array[0];
            for (int i = 0; i < 10; i++)

            {
                if (array[i] < smallest)
                {
                    smallest = array[i];

                }
            }
            int largest = array[9];
            for (int i = 0; i < 10; i++)
            {

                if (array[i] > largest)
                {
                    largest = array[i];

                }
            }
            Console.WriteLine("the smallest no is {0}", smallest);
            Console.WriteLine("the largest no is {0}", largest);
            Console.Read();


        }
    }
}

 



پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی