Month: April 2015

Yield return & using IDisposable

Yield return & using IDisposable

English Version

“Yield return” ist ein mächtiges und praktisches Statement, wenn man schnell und einfach eine iterierbare Liste erzeugen möchte, ohne erst großartig ein Array oder eine List anzulegen:

using System;
using System.Collections.Generic;
using System.Drawing;

class Program
{
    static void Main()
    {
        var colors = Rainbow;

        Console.WriteLine("colors.GetType(): {0}", colors.GetType());
        Console.WriteLine();

        foreach (Color color in colors)
        {
            Console.WriteLine(color.Name);
        }

        Console.ReadLine();
    }

    static IEnumerable<Color> Rainbow
    {
        get
        {
            yield return (Color.Red);
            yield return (Color.Orange);
            yield return (Color.Yellow);
            yield return (Color.Green);
            yield return (Color.LightBlue);
            yield return (Color.Indigo);
            yield return (Color.Violet);
        }
    }
}
Red
Orange
Yellow
Green
LightBlue
Indigo
Violet

Der .NET Compiler erzeugt dann im Hintergrund die notwendigen IEnumerable- und IEnumerator-implementierenden Klassen und die State Machine und alles ist fein und übersichtlich.

Read More Read More

Linq: Split()

Linq: Split()

English Version

Terminator T1000

Ihr kennt ja den Aschenputtel-Spruch “Die Guten ins Töpfchen, die Schlechten ins Kröpfchen.”?

Naja, .NET Linq hat eine Lösung für das Eine oder Andere, genannt Where(). Wenn man das benutzt, sieht die Lösung wahrscheinlich so aus:

var evens = list.Where(number => ((number % 2) == 0));
var odds =  list.Where(number => ((number % 2) != 0));

Aber es gibt keine Lösung für Beides. Also hab ich mir selbst eine geschrieben:

public static void Split<T>(this IEnumerable<T> source
    , Func<T, Boolean> predicate
    , out IEnumerable<T> trueList
    , out IEnumerable<T> falseList)
{
    trueList = source.Where(predicate);
    falseList = source.Except(trueList);
}

Read More Read More

Einkaufstagebuch 2015 – April

Einkaufstagebuch 2015 – April

Castle: Season 6 (2013 – 2014)


23.04. – 23,35€ (14,86£) bei Amazon.co.uk

Sammlungs-Nr. 12967 – 12972

Chuck: Die komplette Serie (2007 – 2011)
(Chuck: The Complete Series)


23.04. – 11,57€ (57,99$) bei Amazon.com (teilweise bezahlt per Gutschein)

Sammlungs-Nr. 12973 – 12989

How I Met Your Mother: Season 9 (2013)


23.04. – 17,67€ (10,91£) bei Amazon.co.uk

Sammlungs-Nr. 12990 – 12992

Batman 1 – 4 (1989 – 1997)


27.04. – 12,97€ bei Amazon.de

Sammlungs-Nr. 1200 – 1203

Sister Act – Eine himmlische Karriere (1992)
(Sister Act)


27.04. – 7,50€ bei Amazon.de

Sammlungs-Nr. 1204

Read More Read More

Einkaufstagebuch 2015 – März

Einkaufstagebuch 2015 – März

Fack ju Göhte (2013)


07.03. – 9,99€ bei Media Markt

Sammlungs-Nr. 1187

Tammy (2014)


07.03. – 7,99€ bei Drogerie Müller

Sammlungs-Nr. 1188

The Return of the First Avenger (2014)
(Captain America: The Winter Soldier)


19.03. – 9,99€ bei Amazon.de

Sammlungs-Nr. 1189

Jay und Silent Bob schlagen zurück (2001)
(Jay and Silent Bob Strike Back)


23.03. – 9,74€ (5,95£) bei Amazon.co.uk

Sammlungs-Nr. 1190

Mallrats (1995)


23.03. – 11,17€ (6,94£) bei Amazon.co.uk

Sammlungs-Nr. 1191

Read More Read More