Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Rakenteet Muiden Tietorakenteiden Kanssa | Rakenteet ja Enumeraattorit
C# Perusteiden Jälkeen

bookRakenteet Muiden Tietorakenteiden Kanssa

Koska rakenteet ovat pohjimmiltaan tietotyyppejä, voit käyttää niitä myös taulukoiden ja Listojen luomiseen:

index.cs

index.cs

copy
1234567891011121314151617181920
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { // An array of 50 students Student[] studentsArr = new Student[50]; // A list of students List<Student> studentsList; } }

Listassa tai taulukossa Student-olion kenttään viitataan seuraavalla syntaksilla:

index.cs

index.cs

copy
1
variableName[index].fieldName

Esimerkiksi:

index.cs

index.cs

copy
1234567
// Array studentsArr[17].name = "Alex"; // List studentsList[27].age = 21; // Note: Both have the same syntax.

Voit myös käydä läpi näitä taulukoita tai listoja tietojen asettamiseksi tai hakemiseksi. Esimerkiksi seuraava koodi käy läpi List-tyyppisen Students-oliorakenteen ja laskee keski-iän:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { // Creating an array Student[] students = new Student[7]; // Setting some data students[0].age = 18; students[1].age = 13; students[2].age = 16; students[3].age = 21; students[4].age = 30; students[5].age = 36; students[6].age = 20; int totalAge = 0; for (int i = 0; i < students.Length; i++) { totalAge += students[i].age; } // Formula for average is "sum of elements / number of elements" float averageAge = totalAge / students.Length; Console.WriteLine($"Average Age: {averageAge}"); } }

On selvää, että tässä Student-rakenne toimii tietotyyppinä. Voimme käyttää Student-rakennetta myös sanakirjan arvona. Alla on esimerkki Struct-tyypin käyttämisestä arvona sanakirjassa:

index.cs

index.cs

copy
123456789101112131415161718192021222324
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { var studentsByID = new Dictionary<int, Student>(); Student student; student.name = "Thomas"; student.age = 36; studentsByID.Add(0, student); Console.WriteLine(studentsByID[0].name); } }
question mark

Mikä on oikea syntaksi ensimmäisen pelaajan score-attribuutin hakemiseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you show me an example of how to use a struct as a value in a dictionary?

How do I access or modify a struct stored in a dictionary?

What are some best practices for using structs in collections like arrays, lists, or dictionaries?

Awesome!

Completion rate improved to 2.04

bookRakenteet Muiden Tietorakenteiden Kanssa

Pyyhkäise näyttääksesi valikon

Koska rakenteet ovat pohjimmiltaan tietotyyppejä, voit käyttää niitä myös taulukoiden ja Listojen luomiseen:

index.cs

index.cs

copy
1234567891011121314151617181920
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { // An array of 50 students Student[] studentsArr = new Student[50]; // A list of students List<Student> studentsList; } }

Listassa tai taulukossa Student-olion kenttään viitataan seuraavalla syntaksilla:

index.cs

index.cs

copy
1
variableName[index].fieldName

Esimerkiksi:

index.cs

index.cs

copy
1234567
// Array studentsArr[17].name = "Alex"; // List studentsList[27].age = 21; // Note: Both have the same syntax.

Voit myös käydä läpi näitä taulukoita tai listoja tietojen asettamiseksi tai hakemiseksi. Esimerkiksi seuraava koodi käy läpi List-tyyppisen Students-oliorakenteen ja laskee keski-iän:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { // Creating an array Student[] students = new Student[7]; // Setting some data students[0].age = 18; students[1].age = 13; students[2].age = 16; students[3].age = 21; students[4].age = 30; students[5].age = 36; students[6].age = 20; int totalAge = 0; for (int i = 0; i < students.Length; i++) { totalAge += students[i].age; } // Formula for average is "sum of elements / number of elements" float averageAge = totalAge / students.Length; Console.WriteLine($"Average Age: {averageAge}"); } }

On selvää, että tässä Student-rakenne toimii tietotyyppinä. Voimme käyttää Student-rakennetta myös sanakirjan arvona. Alla on esimerkki Struct-tyypin käyttämisestä arvona sanakirjassa:

index.cs

index.cs

copy
123456789101112131415161718192021222324
using System; using System.Collections.Generic; struct Student { public string name; public int age; } class Program { static void Main() { var studentsByID = new Dictionary<int, Student>(); Student student; student.name = "Thomas"; student.age = 36; studentsByID.Add(0, student); Console.WriteLine(studentsByID[0].name); } }
question mark

Mikä on oikea syntaksi ensimmäisen pelaajan score-attribuutin hakemiseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
some-alt