Пример #1
0
        private static void DemoNoYield()
        {
            var players = ChessPlayer.GetDemoList().Filter(c => c.Country == "USA");

            foreach (var player in players)
            {
                Console.WriteLine(player);
            }
        }
Пример #2
0
        public static void ToDictionary()
        {
            var players      = ChessPlayer.GetDemoList();
            var chessPlayers = players.ToDictionary(x => x.Id);

            foreach (var player in chessPlayers)
            {
                Console.WriteLine($"Id: {player.Key}. Last Name: {player.Value.LastName}");
            }
        }
Пример #3
0
        private static void ElementAtCount()
        {
            var players = ChessPlayer.GetDemoList();

            int  count     = players.Count(p => p.Country == "USA");
            long longCount = players.LongCount();

            ChessPlayer x = players.ElementAt(1);

            Console.WriteLine($"Count: {count} Long Count: {longCount}  Player at Index 1 {x}");
            Console.WriteLine();
        }
        private static void ParseCsvExpression(string file)
        {
            var list = File.ReadAllLines(file)
                       .Skip(1)
                       .Select(f => ChessPlayer.ParseFideCsv(f))
                       .OrderByDescending(p => p.Rating).ThenBy(c => c.Country)
                       .Take(10);

            foreach (var player in list)
            {
                Console.WriteLine(player.ToString());
            }
        }
Пример #5
0
        public static void ParseCsv(string file)
        {
            var list = File.ReadAllLines(file)
                       .Skip(1)
                       .Select(s => ChessPlayer.ParseFideCsv(s))
                       .Where(player => player.BirthYear > 1988)
                       .OrderByDescending(player => player.Rating)
                       .ThenBy(p => p.Country)
                       .Take(10);

            foreach (var player in list)
            {
                Console.WriteLine(player);
            }
        }
        public static void DemoDistinctRating()
        {
            Console.WriteLine("\nFull Demo list of Chess Players:\n");

            foreach (var player in ChessPlayer.GetDemoList())
            {
                Console.WriteLine(player);
            }

            Console.WriteLine("\nCustom Distinct\n");
            var distintByRating = ChessPlayer.GetDemoList().Distinct(new RatingsComparer());

            foreach (var rating in distintByRating)
            {
                Console.WriteLine(rating);
            }
        }
Пример #7
0
        public static void InsertData()
        {
            var fileLocation = Path.Combine(Directory.GetCurrentDirectory(), "ChessStats", "Top100ChessPlayers.csv");

            var records = File.ReadAllLines(fileLocation)
                          .Skip(1)
                          .Select(s => ChessPlayer.ParseFideCsv(s))
                          .ToList();

            var db = new ChessPlayerDb();

            if (!db.chessPlayers.Any())
            {
                db.chessPlayers.AddRange(records);
            }

            db.SaveChanges();
        }
Пример #8
0
        public static void ToArrayToList()
        {
            var chessplayers1 = ChessPlayer.GetDemoList().ToList();
            var chessplayers2 = ChessPlayer.GetDemoList().ToArray();

            Console.WriteLine("Players in list");
            foreach (var player in chessplayers1)
            {
                Console.WriteLine($"Player Name: {player.LastName}");
            }

            Console.WriteLine("\nPlayers in array\n");
            foreach (var player in chessplayers2)
            {
                Console.WriteLine($"Player Name: {player.LastName}");
            }
            Console.WriteLine();
        }
        public static void AnyAllContains()
        {
            var  players  = ChessPlayer.GetDemoList().ToList();
            bool contains = players.Contains(new ChessPlayer()
            {
                Id        = 6,
                BirthYear = 1993,
                FirstName = "Wesley",
                LastName  = "So",
                Rating    = 2780,
                Country   = "USA"
            }, new PlayerComparer());

            bool any = players.Any(p => p.Country == "FRA");

            bool all = players.All(p => p.Rating > 2500);

            Console.WriteLine($"Contains = {contains}, Any = {any} and All = {all}");
        }
        private static void ParseCsvExpression_First_Last_Single_Default(string file)
        {
            var list = File.ReadAllLines(file)
                       .Skip(1)
                       .Select(f => ChessPlayer.ParseFideCsv(f))
                       .OrderByDescending(p => p.Rating).ThenBy(c => c.Country)
                       .Take(10);

            Console.WriteLine(list.First());
            Console.WriteLine(list.Last());
            Console.WriteLine(list.First(c => c.Country == "USA"));
            Console.WriteLine(list.Last(c => c.Country == "USA"));

            Console.WriteLine(list.FirstOrDefault(c => c.Country == "BRA"));
            Console.WriteLine(list.LastOrDefault(c => c.Country == "BRA"));

            Console.WriteLine(list.Single(c => c.Country == "FRA"));
            Console.WriteLine(list.SingleOrDefault(c => c.Country == "BRA"));
        }
Пример #11
0
        private static void Projections_with_Select()
        {
            var players   = ChessPlayer.GetDemoList().ToList();
            var ratings   = players.Select(p => p.Rating);
            var lastNames = players.Select(p => p.LastName);
            var FullNames = players.Select(p => $"{p.LastName} {p.FirstName}");

            var anonymousType = players.Select((p, index) => new { Index = index, p.FirstName, p.LastName });

            foreach (var rating in ratings)
            {
                Console.WriteLine(rating);
            }
            Console.WriteLine();
            foreach (var type in anonymousType)
            {
                Console.WriteLine($"{type.FirstName } {type.LastName}");
            }
        }
        public static void SequenceEqual(string file)
        {
            var list = File.ReadAllLines(file)
                       .Skip(1)
                       .Select(f => ChessPlayer.ParseFideCsv(f))
                       .Where(p => p.BirthYear > 1988)
                       .OrderByDescending(p => p.Rating).ThenBy(c => c.Country)
                       .Take(10);

            var list2 = File.ReadAllLines(file)
                        .Skip(1)
                        .Select(f => ChessPlayer.ParseFideCsv(f))
                        .Where(p => p.BirthYear > 1988)
                        .OrderByDescending(p => p.Rating).ThenBy(c => c.Country)
                        .Take(10);

            bool areEqual = list.SequenceEqual(list2, new PlayerComparer());

            Console.WriteLine($"Are collections equal? {areEqual}");
        }
Пример #13
0
        public static void GroupByDemo(string file)
        {
            var players = File.ReadAllLines(file)
                          .Skip(1)
                          .Select(s => ChessPlayer.ParseFideCsv(s))
                          .Where(p => p.BirthYear > 1988)
                          .Take(10)
                          .GroupBy(p => p.Country)
                          .OrderByDescending(g => g.Key)
                          .ToList();

            foreach (var player in players)
            {
                Console.WriteLine($"\nThe following players live in {player.Key}");
                foreach (var p in player)
                {
                    Console.WriteLine($"Player: {p.LastName}, Rating: {p.Rating} ");
                }
            }
        }
Пример #14
0
        public static void JoinDemo(string file)
        {
            var players = File.ReadAllLines(file)
                          .Skip(1)
                          .Select(s => ChessPlayer.ParseFideCsv(s))
                          .Where(p => p.BirthYear > 1988)
                          .Take(10)
                          .ToList();

            var tournaments = Tournament.GetDemoStats();

            var join = players.Join(tournaments,
                                    p => p.Id,
                                    t => t.PlayerId,
                                    (p, t) => new
            {
                p.LastName,
                p.Rating,
                t.Title,
                t.TakenPlace,
                t.Country
            });

            foreach (var item in join)
            {
                Console.WriteLine($"{item.LastName} took {item.TakenPlace} place at {item.Title}. Has " +
                                  $"rating {item.Rating}");
            }


            Console.WriteLine("After Join");
            var selectMany = join.GroupBy(c => c.Country)
                             .SelectMany(g => g.OrderBy(grp => grp.TakenPlace));

            foreach (var item in selectMany)
            {
                Console.WriteLine($"{item.LastName} took {item.TakenPlace} place at {item.Title}. Has " +
                                  $"rating {item.Rating}");
            }
        }
Пример #15
0
        public static void CsvToXml()
        {
            var fileLocation = Path.Combine(Directory.GetCurrentDirectory(), "ChessStats", "Top100ChessPlayers.csv");

            var records = File.ReadAllLines(fileLocation)
                          .Skip(1)
                          .Select(s => ChessPlayer.ParseFideCsv(s))
                          .ToList();

            var doc     = new XDocument();
            var players = new XElement("Players",
                                       records.Select(record => new XElement("Player",
                                                                             new XAttribute("Id", record.Id),
                                                                             new XAttribute("Rating", record.Rating),
                                                                             new XAttribute("BirthYear", record.BirthYear),
                                                                             new XAttribute("Country", record.Country),
                                                                             new XAttribute("Lastname", record.LastName),
                                                                             new XAttribute("Firstname", record.FirstName))));

            doc.Add(players);
            doc.Save("ChessPlayers.xml");
        }
        public static void MinMaxSumAverage(string file)
        {
            var list = File.ReadAllLines(file)
                       .Skip(1)
                       .Select(s => ChessPlayer.ParseFideCsv(s))
                       .Where(p => p.BirthYear > 1988)
                       .OrderByDescending(p => p.Rating)
                       .Take(10)
                       .ToList();

            Console.WriteLine($"The lowest rating in top 10: {list.Min(x => x.Rating)}");
            Console.WriteLine($"The Maxiumum rating in top 10: {list.Max(x => x.Rating)}");
            Console.WriteLine($"The average rating in top 10: {list.Average(x => x.Rating)}");

            var data = new List <int>()
            {
                1, 20, 37, 93, 107, 509, 670, 35
            };
            var total = data.Sum(i => i);

            Console.WriteLine($"The Sum of the integers is : { total}");
        }
Пример #17
0
 private static IEnumerable <ChessPlayer> FilterPlayersByMinumumRating(int minRating)
 {
     return(ChessPlayer.GetDemoList().Where(p => p.Rating >= minRating));
 }