From 5090f819f1d1095d48e43c93ed961b4deb663611 Mon Sep 17 00:00:00 2001 From: frauseo Date: Sat, 23 May 2020 12:43:07 +0200 Subject: [PATCH] project restructured --- .../DuplicateCheckerLib.dll | Bin 0 -> 4608 bytes .../DuplicateCheckerLib.sln | 25 ++++++++++++++++++ .../DuplicateCheckerLib/DuplicateChecker.cs | 17 ++++++++++++ .../DuplicateCheckerLib.csproj | 7 +++++ .../DuplicateCheckerLib/IEntity.cs | 8 ++++++ {Generics => Aufgaben}/Generics.pdf | Bin {Generics => Aufgaben}/IRepositoryBase.cs | 0 .../InversionOfControl.pdf | Bin {LINQ => Aufgaben}/LINQ_LinqToSql.pdf | Bin {NuGet => Aufgaben}/NuGet.pdf | Bin .../Object Equality.pdf | Bin .../Reflection_Serialization.pdf | Bin {RegEx => Aufgaben}/RegEx.pdf | Bin ObjectEquality/DuplicateCheckerLib.zip | Bin 14441 -> 0 bytes 14 files changed, 57 insertions(+) create mode 100644 Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib.dll create mode 100644 Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib.sln create mode 100644 Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateChecker.cs create mode 100644 Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib.csproj create mode 100644 Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/IEntity.cs rename {Generics => Aufgaben}/Generics.pdf (100%) rename {Generics => Aufgaben}/IRepositoryBase.cs (100%) rename {InversionOfControl => Aufgaben}/InversionOfControl.pdf (100%) rename {LINQ => Aufgaben}/LINQ_LinqToSql.pdf (100%) rename {NuGet => Aufgaben}/NuGet.pdf (100%) rename {ObjectEquality => Aufgaben}/Object Equality.pdf (100%) rename {Reflection_Serialization => Aufgaben}/Reflection_Serialization.pdf (100%) rename {RegEx => Aufgaben}/RegEx.pdf (100%) delete mode 100644 ObjectEquality/DuplicateCheckerLib.zip diff --git a/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib.dll b/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..10ce8455a5ceb40c998f67cb2497d6d54849a8c3 GIT binary patch literal 4608 zcmeHKTWlLu8vf73ahxo#`=%H>ckN8o z4)nV3ReZCiTc+!JpQqon;GoCYD<9Nb8DgD$5@sBR{EG^7TOlron&N~Xo(YX zX`3VJ1aISwL^GGlevHsw?HZ1hJkRP z>`+r1hWCaq9S@31GzTHuQgNe?+c43-1W)=Y#Lta=)2NmHr4tp9bHU7?(Kcr_I*M@^ z-%Y_f#MKeNr;c^h;;l#DxosfhbpcsV>2_}ekp6E)Z>l@By@T4?J$TGT&v@NHcKrLl z>oVKhGF}gJ|I^mnx{bP9Zz2ILjr!>30$~E8>$I)CtZ@_YeZ{-?iP(G2#lkKlYwXPK z9NNR0t>gfH2ImGICOU>3y^3$382Ywb30Nc58l`yPaFH^=IfVlU4v!YlZvwrY$L@2y z5-X!&xH!n|z;=MoO8$Qb7ma?c;p+al`IlodB?X?jG#Cuobd zfhJ)-O@F87M4D{zAz-(H=ZW!86`WF>XBEDrT>xLuJs5SBf;TF-LBVfC4fYr4f|}4! zvvaNlqWo0cMnejJ9{lIE+W-Y3n9^D8G(Dg#fPO!sHub{}Tm$E6t)2Qcfnqc7O27{K z1K<^~#&C~q-kCB0#o(0@YuK^CwKLEGU{{VMVS{QUEa%E7St_HkE@r!_cklsN#Iz*|Zqyh*; zHIA91N?MIhBq-77h})=1-z+(DZfKbbJs;FTGpH722yDy_xclR{S8h1+E-EzYj%}Ht z%vYs#Qu^#6F%$P#Ur$c-5@^;=>DY!asVN9PrqD9~e5m*0 zxg8%J>e59tEFLW4JMn5hbY`^vqrO?6@Z6D8maOwSo2mNVgMr8hYEx&_Zb4TX6C*Rl zctdQD>$-R079$G_T^pAdH*XKeT%5pKr%i%-m($s_^Qc2mtJ*)fC^5$n?gspDGJ~&( zBz?5^i$A|XVtk6vgERQ5xc{r_kdIW@JwDUHrY`}$Y?84C-y6+sx>zWl@BE~5^D8e- zytKDed*y}teQYCt$L!$%J8(8UDXY$G;5B?p&iWF&es+xz*5rAm6SFF+*`~7t30h0p zsF!g99n9Tw>u!quIeSCw4`SZ+$>;s{Uu#c%RJEQuU5MWX9LEEU>x`{#$r~b)9M5}x z!Ewe-+of7ydA^itzp?b<^{{biYE~Qko%1VYfL{W5=is^deFvf!6*kH$KI`$@@z^lY zVAK0~uw@sxN2o~00Y_*W*eG7w6QD-{_eZa8dN=j|Z=-vdcLTSm|5HS$w^H++%xr#( z30O7BhaDSlItiODUJITYHK<0-Kx%>;KyFe9Jr7jWUQay=qXIsK(6Yg=tYK+R>0~MS z?V=KJj&~!*=3%c!bv4H#A~HcqWxhZS@EzE-)XWmPRmdzl3Fy-pBqeB0DLY971;_&E zus`+h`FpwcvN&DEavVq0Tmh^laS!2blwJOK{!P&5%!NwVg||*qB$qd@L1m2MclB1h zo&=(k$R=Cj4Ap5-MN~ls`2QUp-!V1sWX$L6vv!gPrlL&#)cK>jOu?=PpBl(z*c1(~ zo6D<97B5YK>@?fCG@C2AB)VPYJ%{QAh`ol|I*3}w3gv3ARA6Nc*WowPP!Rq FindDuplicates(IEnumerable list) { + var hashSet = new HashSet(); + var ret = new List(); + foreach (var item in list) { + if (!hashSet.Add(item)) { + ret.Add(item); + } + } + + return ret; + } + } +} diff --git a/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib.csproj b/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib.csproj new file mode 100644 index 0000000..72764a6 --- /dev/null +++ b/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib.csproj @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git a/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/IEntity.cs b/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/IEntity.cs new file mode 100644 index 0000000..f44e215 --- /dev/null +++ b/Aufgaben/DuplicateCheckerLib/DuplicateCheckerLib/DuplicateCheckerLib/IEntity.cs @@ -0,0 +1,8 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace DuplicateCheckerLib { + public interface IEntity { + } +} diff --git a/Generics/Generics.pdf b/Aufgaben/Generics.pdf similarity index 100% rename from Generics/Generics.pdf rename to Aufgaben/Generics.pdf diff --git a/Generics/IRepositoryBase.cs b/Aufgaben/IRepositoryBase.cs similarity index 100% rename from Generics/IRepositoryBase.cs rename to Aufgaben/IRepositoryBase.cs diff --git a/InversionOfControl/InversionOfControl.pdf b/Aufgaben/InversionOfControl.pdf similarity index 100% rename from InversionOfControl/InversionOfControl.pdf rename to Aufgaben/InversionOfControl.pdf diff --git a/LINQ/LINQ_LinqToSql.pdf b/Aufgaben/LINQ_LinqToSql.pdf similarity index 100% rename from LINQ/LINQ_LinqToSql.pdf rename to Aufgaben/LINQ_LinqToSql.pdf diff --git a/NuGet/NuGet.pdf b/Aufgaben/NuGet.pdf similarity index 100% rename from NuGet/NuGet.pdf rename to Aufgaben/NuGet.pdf diff --git a/ObjectEquality/Object Equality.pdf b/Aufgaben/Object Equality.pdf similarity index 100% rename from ObjectEquality/Object Equality.pdf rename to Aufgaben/Object Equality.pdf diff --git a/Reflection_Serialization/Reflection_Serialization.pdf b/Aufgaben/Reflection_Serialization.pdf similarity index 100% rename from Reflection_Serialization/Reflection_Serialization.pdf rename to Aufgaben/Reflection_Serialization.pdf diff --git a/RegEx/RegEx.pdf b/Aufgaben/RegEx.pdf similarity index 100% rename from RegEx/RegEx.pdf rename to Aufgaben/RegEx.pdf diff --git a/ObjectEquality/DuplicateCheckerLib.zip b/ObjectEquality/DuplicateCheckerLib.zip deleted file mode 100644 index 24e9537ed350c5e97e55e923011ee98214439497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14441 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