Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created February 17, 2023 14:27
Show Gist options
  • Save codecademydev/26cf9ee7336e51c8c9871ad62b00156e to your computer and use it in GitHub Desktop.
Save codecademydev/26cf9ee7336e51c8c9871ad62b00156e to your computer and use it in GitHub Desktop.
Codecademy export
using System;
using System.Collections.Generic;
namespace ProgrammingLanguages
{
public class Language
{
public static Language FromTsv(string tsvLine)
{
string[] values = tsvLine.Split('\t');
Language lang = new Language(
Convert.ToInt32(values[0]),
Convert.ToString(values[1]),
Convert.ToString(values[2]),
Convert.ToString(values[3]));
return lang;
}
public int Year
{ get; set; }
public string Name
{ get; set; }
public string ChiefDeveloper
{ get; set; }
public string Predecessors
{ get; set; }
public Language(int year, string name, string chiefDeveloper, string predecessors)
{
Year = year;
Name = name;
ChiefDeveloper = chiefDeveloper;
Predecessors = predecessors;
}
public string Prettify()
{
return $"{Year}, {Name}, {ChiefDeveloper}, {Predecessors}";
}
// #10
public static void PrettyPrintAll(IEnumerable<Language> languages)
{
foreach (var language in languages)
{
Console.WriteLine(language.Prettify());
}
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace ProgrammingLanguages
{
class Program
{
static void Main()
{
List<Language> languages = File.ReadAllLines("./languages.tsv")
.Skip(1)
.Select(line => Language.FromTsv(line))
.ToList();
// #1
foreach (var language in languages)
{
Console.WriteLine(language.Prettify());
}
// #2
var descriptions = languages.Select(language => $"{language.Name} was created in ${language.Year} by {language.ChiefDeveloper}.");
foreach (var description in descriptions)
{
Console.WriteLine(description);
}
// #3
Console.WriteLine(languages.Where(language => language.Name == "C#").First().Prettify());
// #4
var microsoftLanguages = languages.Where(language => language.ChiefDeveloper.Contains("Microsoft"));
foreach (var microsoftLanguage in microsoftLanguages)
{
Console.WriteLine(microsoftLanguage.Prettify());
}
// #5
var lispSuccessors = languages.Where(language => language.Predecessors.Contains("Lisp"));
foreach (var lispSuccessor in lispSuccessors)
{
Console.WriteLine(lispSuccessor.Prettify());
}
// #6
var scripts = languages.Where(language => language.Name.Contains("Script")).Select(language => language.Name);
foreach (var script in scripts)
{
Console.WriteLine(script);
}
// #7
Console.WriteLine(languages.Count());
// #8
var milleniums = languages.Where(language => language.Year > 1994 && language.Year < 2006);
Console.WriteLine(milleniums.Count());
// #9
var milleniumsDates = milleniums.Select(millenium => $"{millenium.Name} was invented in {millenium.Year}.");
foreach (var milleniumsDate in milleniumsDates)
{
Console.WriteLine(milleniumsDate);
}
// #10
Language.PrettyPrintAll(languages);
// #11
}
public static void PrintAll(IEnumerable<Object> elements)
{
foreach (var element in elements)
{
Console.WriteLine(element);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment