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
- Podstawy krotek wartościowych
- Nazwane elementy krotek
- Dekonstrukcja
- Krotki jako wartości zwracane metod