private static void DemoNoYield() { var players = ChessPlayer.GetDemoList().Filter(c => c.Country == "USA"); foreach (var player in players) { Console.WriteLine(player); } }
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}"); } }
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()); } }
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); } }
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(); }
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")); }
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}"); }
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} "); } } }
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}"); } }
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}"); }
private static IEnumerable <ChessPlayer> FilterPlayersByMinumumRating(int minRating) { return(ChessPlayer.GetDemoList().Where(p => p.Rating >= minRating)); }