diff --git a/04-UbgCycleList-Di/04-UbgCycleList-Di.csproj b/04-UbgCycleList-Di/04-UbgCycleList-Di.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..449be0572fa5c7c4cfbc9b2b99211b55572a0277
--- /dev/null
+++ b/04-UbgCycleList-Di/04-UbgCycleList-Di.csproj
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_04_UbgCycleList_Di</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/04-UbgCycleList-Di/CycleList.cs b/04-UbgCycleList-Di/CycleList.cs
new file mode 100644
index 0000000000000000000000000000000000000000..26c7733d4cb04bc6a806284fb3feb1e5b8719670
--- /dev/null
+++ b/04-UbgCycleList-Di/CycleList.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace _04_UbgCycleList_Di
+{
+    // Schreiben Sie eine verkettete Liste, die die Möglichkeit bietet,
+    // das letzte Element wieder mit dem ersten zu verbinden (Zyklus schließen)
+    // Eingebettete Klasse Element
+    // Nutzlast: string name
+    // Methoden:
+    
+    class CycleList
+    {
+
+        public void AddEnd() // wie bisher
+        public void  CloseCycle() // letztes mit dem ersten Element verbinden
+        public void  SetIterator(int offset=0) // Einen internen Zeiger (Iterator) auf das (anfang+offset) Listenelement setzen
+        public string GetName() // Den string zurückliefern, der im Iterator-Listenelement gespeichert ist
+        public void  MoveNext() // Den Iterator um ein Element weitersetzen
+    }
+}
diff --git a/04-UbgCycleList-Di/Program.cs b/04-UbgCycleList-Di/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e15ebbec1ef1bad5c635e645640ca7975c36beba
--- /dev/null
+++ b/04-UbgCycleList-Di/Program.cs
@@ -0,0 +1,28 @@
+using System;
+
+namespace _04_UbgCycleList_Di
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            CycleList cl = new CycleList();
+            cl.AddEnd("Anton");
+            cl.AddEnd("Berta");
+            cl.CloseCycle();
+            cl.Print();
+            Console.WriteLine("-------------");
+            cl.AddEnd("Claudia");
+            cl.AddEnd("Dieter");
+            cl.CloseCycle();
+            cl.Print();
+            Console.WriteLine("-------------");
+            cl.SetIterator(2);
+            for (int i = 0; i < 10; i++)
+            {
+                Console.WriteLine(cl.GetName());
+                cl.MoveNext();
+            }
+        }
+    }
+}
diff --git a/Prog2WienkopSS2021.sln b/Prog2WienkopSS2021.sln
index 70c4c38c37a4851adaa0be876b5ed0e008728af0..372d4c989735b7714f79562623b721b534c75998 100644
--- a/Prog2WienkopSS2021.sln
+++ b/Prog2WienkopSS2021.sln
@@ -23,9 +23,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03-UbgKlasseTime-Mo", "03-U
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03-UbgListe-Di", "03-UbgListe-Di\03-UbgListe-Di.csproj", "{0E5C379D-0D10-4CAC-A12C-4757DE1E5C4E}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04-UbgListe-Mo", "04-UbgListe-Mo\04-UbgListe-Mo.csproj", "{A2BD08A7-3354-4A7E-A80E-8344C2D22F50}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04-UbgListe-Mo", "04-UbgListe-Mo\04-UbgListe-Mo.csproj", "{A2BD08A7-3354-4A7E-A80E-8344C2D22F50}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04-1 VerketteteStrukturen2", "04-1 VerketteteStrukturen2\04-1 VerketteteStrukturen2.csproj", "{87021F69-DA51-4CA6-8394-C8819675D893}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04-1 VerketteteStrukturen2", "04-1 VerketteteStrukturen2\04-1 VerketteteStrukturen2.csproj", "{87021F69-DA51-4CA6-8394-C8819675D893}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04-UbgCycleList-Di", "04-UbgCycleList-Di\04-UbgCycleList-Di.csproj", "{E1A44696-1661-47C6-B083-65BD53DA917A}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -81,6 +83,10 @@ Global
 		{87021F69-DA51-4CA6-8394-C8819675D893}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{87021F69-DA51-4CA6-8394-C8819675D893}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{87021F69-DA51-4CA6-8394-C8819675D893}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E1A44696-1661-47C6-B083-65BD53DA917A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E1A44696-1661-47C6-B083-65BD53DA917A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E1A44696-1661-47C6-B083-65BD53DA917A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E1A44696-1661-47C6-B083-65BD53DA917A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE