Iterator pattern & Enumerables #2 Flashcards

1
Q

Fråga: Vad är huvudsyftet med Iterator-pattern i objektorienterad programmering?

A) Att öka prestanda vid dataåtkomst
B) Att tillåta sekventiell åtkomst till element i en samling utan att avslöja den underliggande datstrukturen
C) Att säkerställa dataintegritet i multitrådade applikationer

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
IEnumerator<string> enumerator = myList.GetEnumerator();
while (enumerator.MoveNext())
{
    Console.WriteLine(enumerator.Current);
}

Fråga: Vad gör koden ovan i kontexten av IEnumerable och IEnumerator?

A) Raderar element från myList
B) Skriver ut varje element i myList till konsolen
C) Jämför elementen i myList

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
IEnumerable<int> numbers = new List<int> { 1, 2, 3 };
foreach (var num in numbers)
{
    Console.Write(num + " ");
}

Fråga: Vilken är outputen av koden ovan?

A) 1 2 3
B) 0 1 2
C) Inget, det finns ett kompileringsfel

A

Svar: A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
IEnumerator enumerator = new List<int>().GetEnumerator();
enumerator.MoveNext();
var current = enumerator.Current;

Fråga: Kompilerar koden ovan utan fel?
A) Ja
B) Nej, Current är inte tillgängligt
C) Nej, MoveNext() returnerar void

A

Svar: A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Fill in the gap _\\\_\

var numbers = new List<int> { 1, 2, 3 };
var enumerator = numbers.GetEnumerator();
while (enumerator.\_\_\_\_\_\_())
{
    Console.Write(enumerator.Current + " ");
}

A) Continue
B) MoveNext
C) Next

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Fråga: Hur relaterar begreppet “Enumerable” i .NET till Iterator pattern?

A) Enumerable är en datastruktur som lagrar element i minnet.
B) Enumerable är en implementation av Iterator-mönstret, som möjliggör sekventiell genomgång av en samling.
C) Enumerable är en metod för att omvandla data mellan olika typer i en applikation.

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
public class MyCollection : IEnumerable<int>
{
    private List<int> list = new List<int>();

    public IEnumerator<int> GetEnumerator()
    {
        return list.GetEnumerator();
    }

    // Andra metoder och kod här...
}

Fråga: Vad möjliggör klassen MyCollection i sammanhanget av iteration?

A) Direkt modifiering av list utanför klassen.
B) Sekventiell åtkomst till elementen i list via en enumerator.
C) Automatisk sortering av list när nya element läggs till.

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
var numbers = Enumerable.Range(1, 3);
foreach (var number in numbers)
{
    Console.Write(number + " ");
}

Fråga: Vilken är outputen av koden ovan?

A) 1 2 3
B) 1 2 3 4
C) 0 1 2

A

Svar: A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
IEnumerable<int> numbers = new List<int> { 1, 2, 3 };
IEnumerator<int> enumerator = numbers.GetEnumerator();
while (enumerator.MoveNext())
{
    Console.WriteLine(enumerator.Current);
    numbers.Add(4);  
}

Fråga: Kompilerar koden ovan korrekt?

A) Ja
B) Nej, Add-metoden finns inte på IEnumerable
C) Nej, man kan inte ändra en samling under iteration

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
var data = new List<string> { "apple", "banana", "cherry" };
var iterator = data.GetEnumerator();
while (iterator.MoveNext())
{
    Console.Write("Current fruit: " + iterator.\_\_\_\_\_\_\_ + "\n");
}

Fråga: Vilken egenskap hos iterator saknas i koden ovan för att korrekt hämta och skriva ut det aktuella elementet?

A) Value
B) Current
C) Element

A

Svar: B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly