Skip to content

Latest commit

 

History

History
109 lines (85 loc) · 1.91 KB

CSHARP.md

File metadata and controls

109 lines (85 loc) · 1.91 KB

C# Basics

TLDR:

Typer

Kan defineres enten som record , class

// C# records
public record Pokemon(string Name, Sprites Sprites);
public record Sprites(string Front_Default, string Back_Default);
// C# class
public class Pokemon
{
    public string? Name { get; set; }
    public Sprites Sprites { get; set; }
}

public class Sprites
{
    public string? Front_Default { get; set; }
    public string? Back_Default { get; set; }
}

Instansiering av objekter

// C# records
var pokemon = new Pokemon("charmander", new Sprites("https://…", "https://…"));

For klasser kan man benytte Object initializer syntax:

// C# class
var pokemon = new Pokemon
{
    Name = "charmander",
    Sprites = new Sprites
    {
        Front_Default = "https://…",
        Back_Default = "https://…"
    }
};

Collections

Lister og andre typer collections støtter og Object initializer-syntaksen:

  var list = new List<string>();
  list.Add("Hello");
  list.Add("Goobye");
  list.Add("Hi");
var list = new List<string>
{
    "Hello",
    "Goobye",
    "Hi"
};

Filtering & mapping

LINQ er en samling av metoder for å iterere, filtrere og collections med en funksjonell syntaks.

Gitt:

var list = new List<string>
{
    "Hello",
    "Goobye",
    "Hi"
};
var filtered = new List<string>();
foreach (var item in list)
{
    if (item.StartsWith("H"))
    {
        filtered.Add(item.ToUpper());
    }
}

… ser slik ut med bruk av LINQ:

// Extension methods
var filtered = list.Where(s => s.StartsWith("H")).Select(s => $"{s.ToUpper()}");

// Query syntax
var filtered = from s in list where s.StartsWith("H") select s.ToUpper();