1. פונקציית MinTup

public static (int, int) MinTup(int[] arr) // returns tuple
{
    int iMin = 0;
    for (int i = 1; i < arr.Length; i++)
    {
        if (arr[i] < arr[iMin])
            iMin = i; // מוצא את המינימום ואת האינדקס שלו
    }
    return (iMin, arr[iMin]); // tuple החזרת 
}

2. פונקציות מחרוזות מובנות

string s = "Example String";

int position = s.IndexOf("String"); // מחזירה אינדקס התחלת תת-מחרוזת או -1
bool has = s.Contains("Exam"); // בודקת קיום תת-מחרוזת
int len = s.Length; // מחזירה את אורך המחרוזת

3. העמסת פונקציות ותחביר פונקציה מקוצר Method Overloading

// תחביר מקוצר. הפונקציה קוראת לפונקציה שמתחת ומחזירה את התוצאה שהיא מקבלת ממנה
// { return... }  החץ הוא במקום הסוגריים והריטורן
public static string SubS(string stt, int start) => SubS(stt, start, stt.Length - start);

// תחביר מלא עם לולאה
public static string SubS(string stt, int start, int end)
{
    string result = "";
    for (int i = start; i < end; i++)
        result += stt[i];

    return result; // מחזירה תת-מחרוזת מ-start עד end
}

4. תחביר מערכים

string[] cars = new string[5]; // איתחול לגודל 5, המערך מאופס
string[] cars2 = { "BMW", "Ford", "Kia" }; // איתחול ישיר (לא ניתן לאחר איתחול רגיל)

5. הגדרה וקריאה של פונקציה המקבלת מערך ושלם ומחזירה שלם

int result = MultiplyAtIndex(new int[] { 1, 2, 3 }, 2); // קריאה לפונקציה
int res2 = MultiplyAtIndex([1, 2, 3], 2); // תחביר 2023 לאותה קריאה

public static int MultiplyAtIndex(int[] arr, int index) => arr[index] * index; // תחביר מקוצר

6. מציאת איבר אחרון המקיים תנאי, ב3 דרכים

בדוגמא זו: מציאת מספר זוגי אחרון במערך

א. תחביר רגיל עם לולאת for הפוכה ו-break

public static int LastEven(int[] arr)
{
    int lastEven = -1;
    for (int i = arr.Length - 1; i >= 0; i--)
    {
        if (arr[i] % 2 == 0)
        {
            lastEven = arr[i];
            break; // לא נרצה להמשיך לחפש
        }
    }
    return lastEven;
}

ב. שימוש בתחביר כובע (^) ולולאת for הפוכה ו-break

public static int LastEvenHat(int[] arr)
{
    int lastEven = -1;
    for (int i = 1; i <= arr.Length; i++)
    {
        if (arr[^i] % 2 == 0)
        {
            lastEven = arr[^i];
            break;
        }
    }
    return lastEven;
}

ג. תחביר foreach קדימה בלי break

public static int LastEvenForeach(int[] arr)
{
    int lastEven = -1;
    foreach (int num in arr)
    {
        if (num % 2 == 0)
            lastEven = num;
    }
    return lastEven;
}

7. מערך מונים

הבעיה: נתון מערך של מספרים בתחום 0–100. כתבו פונקציה המחזירה מערך מונים המצביע על כמות ההופעות של כל מספר.

public static int[] CountOccurrences(int[] arr) 
{
    int[] counts = new int[101];
    foreach (int x in arr) 
    {
        if (x >= 0 && x <= 100) 
        counts[x]++;
    }
    return counts;
}