diff --git a/20240913/ConsoleApp1/.vs/ConsoleApp1/v16/.suo b/20240913/ConsoleApp1/.vs/ConsoleApp1/v16/.suo new file mode 100644 index 0000000..066d009 Binary files /dev/null and b/20240913/ConsoleApp1/.vs/ConsoleApp1/v16/.suo differ diff --git a/20240913/ConsoleApp1/ConsoleApp1.sln b/20240913/ConsoleApp1/ConsoleApp1.sln new file mode 100644 index 0000000..e5c2591 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.34729.46 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1\ConsoleApp1.csproj", "{5461BED4-2EC9-43D0-A3AB-E98B971326F0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5461BED4-2EC9-43D0-A3AB-E98B971326F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5461BED4-2EC9-43D0-A3AB-E98B971326F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5461BED4-2EC9-43D0-A3AB-E98B971326F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5461BED4-2EC9-43D0-A3AB-E98B971326F0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {76AC5EE9-D38D-4CF6-97C2-567BD327C8C3} + EndGlobalSection +EndGlobal diff --git a/20240913/ConsoleApp1/ConsoleApp1/App.config b/20240913/ConsoleApp1/ConsoleApp1/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/20240913/ConsoleApp1/ConsoleApp1/ConsoleApp1.csproj b/20240913/ConsoleApp1/ConsoleApp1/ConsoleApp1.csproj new file mode 100644 index 0000000..316e5e3 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/ConsoleApp1.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {5461BED4-2EC9-43D0-A3AB-E98B971326F0} + Exe + ConsoleApp1 + ConsoleApp1 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/20240913/ConsoleApp1/ConsoleApp1/Program.cs b/20240913/ConsoleApp1/ConsoleApp1/Program.cs new file mode 100644 index 0000000..0374d97 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/Program.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ConsoleApp1 +{ + class Program + { + static void Main(string[] args) + { + var elemek = new List + { + new Pelda {X = 11, Y = 12 }, + new Pelda {X = 51, Y = 98 }, + new Pelda {X = 17, Y = 18 }, + new Pelda {X = 11, Y = 52 }, + new Pelda {X = 14, Y = 18 }, + new Pelda {X = 41, Y = 16 }, + new Pelda {X = 12, Y = 12 } + }; + + var elemek2 = new List + { + new Pelda2 {Z = 11, Y = 12 }, + new Pelda2 {Z = 10, Y = 98 }, + new Pelda2 {Z = 17, Y = 18 }, + new Pelda2 {Z = 11, Y = 55 }, + new Pelda2 {Z = 16, Y = 18 }, + new Pelda2 {Z = 42, Y = 16 }, + new Pelda2 {Z = 12, Y = 13 } + }; + + var eredmeny = (from elem in elemek + group elem by elem.Y into csoport + select csoport); + + var eredmeny2 = elemek.GroupBy(elem => elem.Y); + + + Console.WriteLine(); + + foreach (var group in eredmeny) + { + foreach (var item in group) + { + Console.WriteLine($"{item.X} {item.Y}"); + } + } + + var eredmeny3 = from elem in elemek + join elem2 in elemek2 + on elem.Y equals elem2.Y + select new + { + X = elem.X, + Y = elem.Y, + Z = elem2.Z + }; + + var eredmeny4 = elemek.Join(elemek2, i => i.Y, j => j.Y, (i, j) => new + { + X = i.X, + Y = i.Y, + Z = j.Z + }); + + foreach (var item in eredmeny3) + { + Console.WriteLine($"{item.X},{item.Y},{item.Z}"); + } + + Console.WriteLine(); + + foreach (var item in eredmeny4) + { + Console.WriteLine($"{item.X},{item.Y},{item.Z}"); + } + Console.WriteLine(); + + var eredmeny5 = eredmeny4.Skip(1).Take(2); + + foreach (var item in eredmeny5 ) + { + Console.WriteLine(item); + } + + } + + struct Pelda2{ + public int Y { get; set; } + public int Z { get; set; } + } + + struct Pelda + { + public int X { get; set; } + public int Y { get; set; } + } + } +} diff --git a/20240913/ConsoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs b/20240913/ConsoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c260564 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ConsoleApp1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ConsoleApp1")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5461bed4-2ec9-43d0-a3ab-e98b971326f0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe new file mode 100644 index 0000000..24c1858 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe differ diff --git a/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe.config b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.pdb b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.pdb new file mode 100644 index 0000000..24b2679 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/bin/Debug/ConsoleApp1.pdb differ diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache new file mode 100644 index 0000000..0da8ef2 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache differ diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CoreCompileInputs.cache b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..ee191d7 --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +7f4b213b428f4c013f19137338418ee1f5525793 diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.FileListAbsolute.txt b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..120c22d --- /dev/null +++ b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe.config +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.pdb +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.AssemblyReference.cache +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CoreCompileInputs.cache +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe +C:\Users\szabomarton\Desktop\C#\ProgaOra\20240913\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.exe b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.exe new file mode 100644 index 0000000..24c1858 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.exe differ diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.pdb b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.pdb new file mode 100644 index 0000000..24b2679 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/ConsoleApp1.pdb differ diff --git a/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..12b82c1 Binary files /dev/null and b/20240913/ConsoleApp1/ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/linq_anyag b/linq_anyag index a428da8..38798bf 100644 --- a/linq_anyag +++ b/linq_anyag @@ -18,3 +18,22 @@ Ezután vagy az ascending, vagy a descending kulcsszónak kell következnie att Csoportosítás (good bye) +A csoportosítás query szintaxis esetén a group kulcsszóval kezdődik, amiután meg kell adnunk, hogy pontosan mit szeretnénk csoportba rendezni. +A példa esetén a kiválasztott elem szerint csoportosítsunk, de állhatna itt egy anonim osztályba leképzés is. +Ezt követi a by kulcsszó, ami után meg kell adnunk, hogy mi szerint csoportosítunk, majd az into kulcsszó után meg kell adnunk a csoport nevét, amiből ki tudunk majd választani. + +A lambda kifejezés szintaxisa látható módon jelen esetben sokkal egyszerűbb, mivel csak azt kell megadnunk, hogy mi szerint rendezünk csoportba, az eredmény pedig már a csoportok sorozata lesz. + +Egy csoport elemekből áll. + +JOIN + +Ezt a műveletet join nak vagy összekapcsolásnak nevezzük. A join műveleteknek több fajtája van. Objeltumok esetén a legkönnyebb at inner mjoin művelet valósítható meg. Et két típus metszetét jelenti. + +SOROZAT ÉS ELEM MŰVELETEK +csak lambda szintaxissal alkalmazhatóak + +kihagyás Skip() +Take() //csak adott számú elem kiválasztása + +var eredmeny = elemek.Skip(2).Take(3);