Example #1
0
 public DataController(ref List <Planet> _planets)
 {
     planets = _planets;
     NameComparer NameComparer = new NameComparer();
 }
Example #2
0
        static void Main(string[] args)
        {
            NameComparer  compare = new NameComparer();
            List <Planet> planets = LoadData();

            /*Console.ReadKey()*/
            ;

            ////Take the list and search through all names, and take all planet that start's with m and return is as a list. instead of a enmumerable
            var plans = planets.Where(o => o.Name.First() == 'M').ToList();

            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }

            Console.ReadKey();
            Console.Clear();
            //Take the list planet and search all names, set to lower, make it to char array and search for letter y return as list
            plans = planets.Where(o => o.Name.ToLower().Contains('y')).ToList();
            //run through list and print out object names
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.Name.Length > 9 && o.Name.Length < 15).ToList();

            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }

            Console.ReadKey();
            Console.Clear();
            plans = planets.Where(o => o.Name[1] == 'a' && o.Name.EndsWith("e")).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.RotationPeriod > 40).ToList().OrderBy(o => o.RotationPeriod).ToList();

            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].RotationPeriod}");
            }
            Console.ReadKey();
            Console.Clear();


            plans = planets.Where(o => o.RotationPeriod > 10 && o.RotationPeriod < 20).ToList().OrderBy(o => o.Name).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].RotationPeriod}");
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.RotationPeriod > 30).ToList().OrderBy(o => o.Name).ThenBy(o => o.RotationPeriod).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].RotationPeriod}");
            }
            Console.ReadKey();
            Console.Clear();


            plans = planets.Where(o => o.RotationPeriod < 30 || o.SurfaceWater > 50).Where(o => o.Name.Contains("ba")).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].RotationPeriod}");
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.SurfaceWater > 0).OrderByDescending(o => o.SurfaceWater).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].SurfaceWater}");
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.Diameter > 0 && o.Population > 0).OrderBy(o => o.Diameter * (4 * Math.PI) / o.Population).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} {plans[i].Diameter}");
            }
            Console.ReadKey();
            Console.Clear();

            var tempPlanets = planets.Where(o => o.RotationPeriod > 0).ToList();

            plans = planets.Except(tempPlanets).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine($"{ plans[i].Name} ");
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.Name.First() == 'A' || o.Name.Last() == 's').ToList();
            var plansTwo = planets.Where(o => o.Terrain != null && o.Terrain.Contains("rainforests")).ToList();

            var plansThree = plans.Union(plansTwo);

            //Instead of using  tolist, i used GetEnumerator to run throughn the Ienumberable
            using (var plan = plansThree.GetEnumerator())
            {
                //moving ot next object in collection
                while (plan.MoveNext())
                {
                    Console.WriteLine(plan.Current.Name);
                }
            }

            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.Terrain != null && (o.Terrain.Contains("deserts") || o.Terrain.Contains("rocky deserts"))).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }
            Console.ReadKey();
            Console.Clear();


            plans = planets.Where(o => o.Terrain != null && (o.Terrain.Contains("swamps") || o.Terrain.Contains("swamp"))).OrderBy(o => o.RotationPeriod).ThenBy(o => o.Name).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }
            Console.ReadKey();
            Console.Clear();

            plans = planets.Where(o => o.Name.Contains("aa") || o.Name.Contains("ee") || o.Name.Contains("ii") || o.Name.Contains("oo") || o.Name.Contains("uu") || o.Name.Contains("yy")).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }
            Console.ReadKey();
            Console.Clear();


            plans = planets.Where(o => o.Name.Contains("kk") || o.Name.Contains("ll") || o.Name.Contains("rr") || o.Name.Contains("nn")).OrderByDescending(o => o.Name).ToList();
            for (int i = 0; i < plans.Count(); i++)
            {
                Console.WriteLine(plans[i].Name);
            }
            Console.ReadKey();
            Console.Clear();
        }
Example #3
0
        static void Main(string[] args)
        {
            NameComparer  comparer = new NameComparer();
            List <Planet> planets  = LoadData();

            Console.ReadKey();

            //Opgave 1
            // Udtræk alle planeter som starter med Bogstaven M
            var planetQuery = planets.Where(o => o.Name.First() == 'M').ToList();

            for (int i = 0; i < planetQuery.Count(); i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }


            Console.ReadKey();
            Console.Clear();

            //Opgave 2
            // Udtræk alle planeter som indeholder bogstavet Y

            planetQuery = planets.Where(o => o.Name.ToLower().Contains("y")).ToList();

            for (int i = 0; i < planetQuery.Count(); i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 3
            //Udtræk alle planeter med mere end 9 tegn men under 15

            planetQuery = planets.Where(o => o.Name.Length > 9 && o.Name.Length < 15).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 4
            // udtræk alle planeter som har a på 2nd position og slutter med e

            planetQuery = planets.Where(o => o.Name[1] == 'a' && o.Name.EndsWith("e")).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 5
            //udtræk alle planeter hvor rotationsperioden er større end 40 og sorter listen efter rotationsperioden

            planetQuery = planets.Where(o => o.RotationPeriod > 40).OrderBy(o => o.RotationPeriod).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 6
            //Lav et udtræk , hvor rotationsperioden er større end 10 og mindre end 20 og sorter listen efter navne på planeterne

            planetQuery = planets.Where(o => o.RotationPeriod > 10 && o.RotationPeriod < 20).OrderBy(o => o.Name).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 7
            //Lav et udtræk , hvor rotationsperioden er større end 30 og sorter listen efter navn og rotationsperiode.

            planetQuery = planets.Where(o => o.RotationPeriod > 30).OrderBy(o => o.Name).ThenBy(o => o.RotationPeriod).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 8
            // Lav et udtræk , hvor rotationsperioden er mindre end 30 eller surfacewater er større end 50 og der indgår ba i planetnavnet og sorter listen efter navn på planeterne, surfacewater og rotationsperiode

            planetQuery = planets.Where(o => (o.RotationPeriod < 30 || o.SurfaceWater > 50) && o.Name.Contains("ba")).OrderBy(o => o.Name).ThenBy(o => o.SurfaceWater).ThenBy(o => o.RotationPeriod).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 9
            //Lav et udtræk , hvor surfacewater er større end 0 og sorter listen i faldende orden.

            planetQuery = planets.Where(o => o.SurfaceWater > 0).OrderByDescending(o => o.SurfaceWater).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 10
            //Lav et udtræk på planeter, hvor du både kender diameteren og antallet af indbyggere og sorter listen efter hvor mange km2 en person har til rådighed for hver planet i stigende orden

            planetQuery = planets.Where(o => o.Diameter > 0 && o.Population > 0).OrderBy(o => (((4 * Math.PI) * (o.Diameter / 2) * (o.Diameter / 2)) / o.Population)).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 11
            // Lav en forespørgsel som fjerner alle elementerne fra planets hvor rotationsperioden er større end 0 ved at gøre brug af Except.

            var plan = planets.Where(o => o.RotationPeriod > 0);

            planetQuery = planets.Except(plan).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 12

            /*
             * Opret en liste ved hjælp af linq med alle de elementer, hvor navnet på Planeten starter med a eller ender på s.
             *
             * Opret en anden liste, via Linq, med alle de elementer, hvor terrænet er ”rainforests” og slå de to lister sammen ved hjælp af Union.
             */

            plan        = planets.Where(o => o.Name.ToLower().StartsWith("a") || o.Name.ToLower().EndsWith("s")).ToList();
            planetQuery = planets.Where(o => o.Terrain != null && o.Terrain.Contains("rainforests")).ToList();
            var planetUnion = plan.Union(planetQuery);

            using (var plans = planetUnion.GetEnumerator())
            {
                while (plans.MoveNext())
                {
                    Console.WriteLine(plans.Current.Name);
                }
            }

            Console.ReadKey();
            Console.Clear();

            //Opgave 13
            //Find alle elementer, hvor klimaet består af ørken

            planetQuery = planets.Where(o => o.Terrain != null && (o.Terrain.Contains("deserts") || o.Terrain.Contains("rocky deserts"))).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //opgave 14
            //Find alle elementer, hvor klimaet består af sump og sorter listen efter rotationsperiode og navn
            planetQuery = planets.Where(o => o.Terrain != null && (o.Terrain.Contains("swamp") || o.Terrain.Contains("swamps"))).OrderBy(o => o.RotationPeriod).ThenBy(o => o.Name).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //opgave 15
            //Find alle elementer, hvor der indgår en dobbelt vokal i navnet på planeten

            /*Regex reg = new Regex(@"aa | ee | ii | oo | uu | yy");
             * planetQuery = planets.Where(o => reg.Matches(o.Name).Count > 0).ToList();*/

            planetQuery = planets.Where(o => o.Name.Contains("aa") || o.Name.Contains("ee") || o.Name.Contains("ii") || o.Name.Contains("oo") || o.Name.Contains("uu") || o.Name.Contains("yy")).ToList();


            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();

            //opgave 16
            //Find alle elementer, hvor der indgår ”kk”, ”ll”, ”rr” eller ”nn”, i navnet på planeten og sorter listen efter navnet på planeten i faldende orden.

            planetQuery = planets.Where(o => o.Name.Contains("kk") || o.Name.Contains("ll") || o.Name.Contains("rr") || o.Name.Contains("nn")).ToList();

            for (int i = 0; i < planetQuery.Count; i++)
            {
                Console.WriteLine(planetQuery[i].Name);
            }

            Console.ReadKey();
            Console.Clear();
        }
Example #4
0
        static void Main(string[] args)
        {
            List <Planet> planets      = LoadData();
            NameComparer  nameComparer = new NameComparer();
            //Opgave 1
            var planets1 = from name in planets
                           where name.Name.StartsWith("M")
                           select name.Name;

            //Opgave 2
            var planets2 = from name in planets
                           where name.Name.Contains("y")
                           select name.Name;

            //Opgave 3
            var planets3 = from name in planets
                           where name.Name.Length > 9 && name.Name.Length < 15
                           select name.Name;

            //Opgave 4
            var planets4 = from name in planets
                           where name.Name.IndexOf("a") == 1 && name.Name.EndsWith("e")
                           select name.Name;

            //Opgave 5
            var planets5 = from name in planets
                           orderby name.RotationPeriod
                           where name.RotationPeriod > 40
                           select name.Name;

            //Opgave 6
            var planets6 = from name in planets
                           orderby name.Name
                           where name.RotationPeriod > 10 && name.RotationPeriod < 20
                           select name.Name;

            //Opgave 7
            var planets7 = from name in planets
                           orderby name.Name
                           where name.RotationPeriod > 30
                           select name.Name;

            //Opgave 8  Virker men måske ikke korrekt
            var planets8 = from name in planets
                           orderby name.Name
                           where name.RotationPeriod < 30 || name.SurfaceWater > 50
                           where name.Name.Contains("ba")
                           select name.Name;

            //Opgave 9
            var planets9 = from name in planets
                           orderby name.SurfaceWater descending
                           where name.SurfaceWater > 0
                           select name.Name;

            //Opgave 10
            var planets10 = from name in planets
                            orderby Math.PI *Math.Pow(name.Diameter / 2, 2) / name.Population
                                where name.Diameter > 0 && name.Population > 0
                            select name.Name;

            //Opgave 11
            List <Planet> planetss11 = (from name in planets
                                        where name.RotationPeriod > 0
                                        select name).ToList();
            var planets11 = (from name in planets
                             select name.Name).Except(planetss11.Select(y => y.Name)).ToList();



            //Opgave 12
            //Nåede ikke at blive færdig
            //List<Planet> planetsName = (from name in planets
            //                              where name.Name.StartsWith("A") || name.Name.EndsWith("s")
            //                              select name).ToList();
            //List<Planet> planetsTerrain = (from name in planets
            //                              where name.Terrain
            //                              select name).ToList();

            //Til at udskive de forskellige opgaver
            //Tilføj tal til planets nummer 1-11 svarer til de opgaver
            foreach (var name in planets)
            {
                Console.WriteLine(name);
            }
            Console.ReadKey();
        }