Commit 84ef7b5f authored by Uwe Wienkop's avatar Uwe Wienkop
Browse files

2020-05-11b Mo

parent b9258b07
......@@ -125,14 +125,25 @@ namespace _02VerketteteListe_2
// an der gespeicherten Pos. weitergemacht.
}
}
public IEnumerable Iterate(int offset=0)
{
Element item = anf;
for (int i = 0; i < offset; i++)
item = item.next;
while( item != null)
{
yield return item.name;
item = item.next;
}
}
// foreach --> GetEnumerator() merkt sich die Pos nach yield return und liefert ("Anton")
// item = "Anton"
// foreach --> GetEnumerator(), überprüft, ob noch eine Ausführungspos. gespeichert ist
// JA: --> hier geht die Ausführung weiter
// item=item.next, merkt sich die Pos nach yield return und liefert ("Berta")
// item = "Berta"
// ... bis GetEnumerator() am Methodenende angelangt ist.
// foreach --> GetEnumerator() merkt sich die Pos nach yield return und liefert ("Anton")
// item = "Anton"
// foreach --> GetEnumerator(), überprüft, ob noch eine Ausführungspos. gespeichert ist
// JA: --> hier geht die Ausführung weiter
// item=item.next, merkt sich die Pos nach yield return und liefert ("Berta")
// item = "Berta"
// ... bis GetEnumerator() am Methodenende angelangt ist.
public void DeleteFirst()
{
// 1.Fall: Liste ist leer
......@@ -257,7 +268,7 @@ namespace _02VerketteteListe_2
//l1.Print();
l1.AddBeforeNth(2, "Bodo");
l1.Print();
foreach (string item in l1.Filter("er"))
foreach (string item in l1.Iterate(2))
{
Console.WriteLine($"foreach: {item}");
}
......
......@@ -20,10 +20,11 @@ namespace _03_UebgDi_ZyklischeListe
anf = ende = neuesElement;
else
ende = ende.next = neuesElement; // 3. Neues Element am Ende anfügen
ende.next = anf; // Zyklus schließen: Ende auf Anf verweisen lassen
}
public void CloseCycle()
{
ende.next = anf;
ende.next = anf; // Zyklus schließen: Ende auf Anf verweisen lassen
}
public void Print()
{
......
......@@ -15,25 +15,47 @@ namespace _04_UebgMo_ZyklischeListe
Element iterator = null;
public void AddEnd(string name)
{
Element neuesElement = new Element(name); // 1. Neues Element anlegen
if (anf == null) // 2. Leere Liste?
anf = ende = neuesElement;
else
{
ende.next = neuesElement; // 3. Neues Element am Ende anfügen
ende = ende.next;
}
ende.next = anf;
iterator = ende;
}
public void CloseCycle()
{
ende.next = anf;
}
public void Print()
{
if (anf == null)
return;
// Wir wissen: Es existiert mindestens EIN Element
Element tmp = anf;
do
{
Console.WriteLine(tmp);
tmp = tmp.next;
} while (tmp != null && tmp != anf);
}
public void SetIterator(int offset = 0)
{
iterator = anf;
for (int i = 0; i < offset; i++)
iterator = iterator.next;
}
public string GetName() ;
public void MoveNext() { }
}
public string GetName() => iterator.name;
public void MoveNext() { iterator = iterator.next; }
}
// Programmierer 1
// ===========================================================
// Anwender
class Program
{
static void Main(string[] args)
......@@ -41,7 +63,7 @@ namespace _04_UebgMo_ZyklischeListe
CycleList cl = new CycleList();
cl.AddEnd("Anton");
cl.AddEnd("Berta");
cl.CloseCycle();
//cl.CloseCycle();
cl.Print();
Console.WriteLine("-------------");
cl.AddEnd("Claudia");
......
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"04 UebgMo ZyklischeListe/1.0.0": {
"runtime": {
"04 UebgMo ZyklischeListe.dll": {}
}
}
}
},
"libraries": {
"04 UebgMo ZyklischeListe/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
\ No newline at end of file
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\wienkop\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\wienkop\\.nuget\\packages"
]
}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.1.0"
}
}
}
\ No newline at end of file
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.exe
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.deps.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.runtimeconfig.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.runtimeconfig.dev.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.dll
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.pdb
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.csproj.CoreCompileInputs.cache
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.AssemblyInfoInputs.cache
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.AssemblyInfo.cs
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.dll
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.pdb
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.genruntimeconfig.cache
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.csprojAssemblyReference.cache
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment