Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Strukturer med Andra Datastrukturer | Strukturer och Enumeratorer
C# Bortom Grunderna

bookStrukturer med Andra Datastrukturer

Eftersom strukturer i grunden är datatyper kan du använda dem för att skapa Arrayer och Listor också:

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; } }

I en Lista eller en Array skulle vi komma åt ett fält i ett Student-objekt med följande syntax:

index.cs

index.cs

copy
1
variableName[index].fieldName

Till exempel:

index.cs

index.cs

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

Du kan också iterera genom dessa arrayer eller listor för att tilldela eller hämta data. Till exempel loopar följande kod genom en List av Students-objekt och beräknar medelåldern:

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}"); } }

Det är tydligt att här fungerar Student-strukturen som en datatyp. Vi kan även använda Student som ett dictionary-värde. Nedan följer ett exempel på att använda en Struct som värde i en dictionary:

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

Vilken är den korrekta syntaxen för att komma åt attributet score för den första spelaren?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.04

bookStrukturer med Andra Datastrukturer

Svep för att visa menyn

Eftersom strukturer i grunden är datatyper kan du använda dem för att skapa Arrayer och Listor också:

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; } }

I en Lista eller en Array skulle vi komma åt ett fält i ett Student-objekt med följande syntax:

index.cs

index.cs

copy
1
variableName[index].fieldName

Till exempel:

index.cs

index.cs

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

Du kan också iterera genom dessa arrayer eller listor för att tilldela eller hämta data. Till exempel loopar följande kod genom en List av Students-objekt och beräknar medelåldern:

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}"); } }

Det är tydligt att här fungerar Student-strukturen som en datatyp. Vi kan även använda Student som ett dictionary-värde. Nedan följer ett exempel på att använda en Struct som värde i en dictionary:

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

Vilken är den korrekta syntaxen för att komma åt attributet score för den första spelaren?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
some-alt