0Pricing
C# Academy · Lekcja

Podstawy krotek wartościowych

Twórz lekkie krotki do grupowania danych.

Podstawy krotek wartościowych to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Czym jest krotka

Krotka grupuje kilka wartości w jeden lekki pakiet bez definiowania klasy. Krotki wartościowe w języku C# używają nawiasów: (int, string).

using System;

class Program
{
    static void Main()
    {
        (int, string) pair = (1, "one");
        Console.WriteLine(pair.Item1 + " = " + pair.Item2);
    }
}

Tworzenie krotki wartościowej

Umieść wartości w nawiasach. Kompilator wywnioskuje typ krotki na ich podstawie.

using System;

class Program
{
    static void Main()
    {
        var point = (3, 4);
        Console.WriteLine("x=" + point.Item1 + ", y=" + point.Item2);
    }
}

Dostęp do elementów: Item1, Item2

Do nienazwanych elementów krotki odwołuje się za pomocą Item1, Item2, Item3 i tak dalej, w odpowiedniej kolejności.

using System;

class Program
{
    static void Main()
    {
        var rgb = (255, 128, 0);
        Console.WriteLine("R=" + rgb.Item1 + " G=" + rgb.Item2 + " B=" + rgb.Item3);
    }
}

Krotki mogą zawierać różne typy

Każdy element może mieć inny typ. Krotka może łączyć liczby, ciągi znaków, wartości logiczne i inne wartości.

using System;

class Program
{
    static void Main()
    {
        var user = ("Ada", 36, true);
        Console.WriteLine(user.Item1 + ", age " + user.Item2 + ", active=" + user.Item3);
    }
}

Krotki są zmienne

Elementom krotki wartościowej można ponownie przypisywać wartości, ponieważ każdy element ItemN jest zapisywalnym polem.

using System;

class Program
{
    static void Main()
    {
        var score = (player: "A", points: 0);
        score.points = 10;
        score.points += 5;
        Console.WriteLine(score.player + ": " + score.points);
    }
}

Krotki jako lokalne pakiety

Krotki świetnie nadają się do tymczasowego grupowania wartości wewnątrz metody bez tworzenia dedykowanego typu.

using System;

class Program
{
    static void Main()
    {
        var range = (min: 5, max: 50);
        int span = range.max - range.min;
        Console.WriteLine("Span: " + span);
    }
}

Porównywanie krotek

Krotki wartościowe obsługują równość: dwie krotki są równe, jeśli wszystkie odpowiadające sobie elementy są równe.

using System;

class Program
{
    static void Main()
    {
        var a = (1, 2);
        var b = (1, 2);
        var c = (1, 3);
        Console.WriteLine(a == b);
        Console.WriteLine(a == c);
    }
}

Zagnieżdżanie krotek

Elementem krotki może być inna krotka, co pozwala tworzyć niewielkie ustrukturyzowane grupy.

using System;

class Program
{
    static void Main()
    {
        var line = (start: (0, 0), end: (3, 4));
        Console.WriteLine("From " + line.start.Item1 + "," + line.start.Item2 +
            " to " + line.end.Item1 + "," + line.end.Item2);
    }
}

Krotki w kolekcjach

Krotki można przechowywać na liście, aby zachować powiązane dane razem bez tworzenia klasy.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var scores = new List<(string, int)>
        {
            ("Ann", 90),
            ("Bob", 85)
        };
        foreach (var s in scores)
            Console.WriteLine(s.Item1 + ": " + s.Item2);
    }
}

Semantyka wartości

Krotka wartościowa jest typem struct, dlatego przypisanie jej kopiuje wartości. Zmiana kopii nie wpływa na oryginał.

using System;

class Program
{
    static void Main()
    {
        var original = (n: 1);
        var copy = original;
        copy.n = 99;
        Console.WriteLine("original=" + original.n + ", copy=" + copy.n);
    }
}

Podsumowanie

Krotki wartościowe zapewniają szybkie, typowane grupowanie danych, idealne dla krótkotrwałych danych wewnątrz metody lub prostej listy.

using System;

class Program
{
    static void Main()
    {
        var result = (count: 3, total: 150);
        double average = (double)result.total / result.count;
        Console.WriteLine("Average: " + average.ToString("0.0"));
    }
}

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat krotek wartościowych.

Podsumowanie

Krotka wartościowa grupuje wiele wartości w nawiasach, na przykład (int, string), bez używania klasy. Do nienazwanych elementów odwołuje się za pomocą Item1, Item2. Krotki są zmiennymi strukturami o semantyce wartości i obsługują równość. Idealnie nadają się do szybkiego, lokalnego grupowania danych.

using System;

class Program
{
    static void Main()
    {
        var t = (1, "one", true);
        Console.WriteLine(t.Item1 + " " + t.Item2 + " " + t.Item3);
    }
}

Często zadawane pytania

Czy lekcja „Podstawy krotek wartościowych” jest bezpłatna?

Tak — pełny tekst „Podstawy krotek wartościowych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy krotek wartościowych”?

Twórz lekkie krotki do grupowania danych. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Podstawy krotek wartościowych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy krotek wartościowych
  2. Nazwane elementy krotek
  3. Dekonstrukcja
  4. Krotki jako wartości zwracane metod
← Powrót do C# Academy