niedziela, 31 marca 2013

Power Collections

Power Collectons jest biblioteką powstałą w 2005 roku na platformie .NET Framework 2.0 napisanej przez firmę Wintellect. Jest to zapomniana biblioteka. Była napisana, kiedy jeszcze nie było LINQa.
Za pomocą tej biblioteki możesz wykonać iloczyn kartezjański dla kart:
var kolory = new List<string> {"Trefl", "Karo", "Kier", "Pik"};
var figury = new List<string> {"As", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Walet", "Dama", "Król"};

var karty = Algorithms.CartesianProduct(figury,kolory)
    .Select(x=>x.First + " " + x.Second)
    .ToList();

foreach (var karta in karty)
{
    Console.WriteLine(karta);
}
I jeszcze potasować te karty i zagrać w pokera :)
var kartyNaFlopie = Algorithms.RandomSubset(potasowaneKarty, 3);
foreach (  var karta in kartyNaFlopie)
{
    Console.WriteLine(karta);
}
Oprócz tego za pomoca Power Collections możesz dokonać rotacji listy.
string word = "Arkadiusz Beer ";         
for (int i = 0; i < word.Length; i++)
{
    var builder = new StringBuilder();
    Algorithms.Rotate(word.ToList(), i)
        .ToList()
        .ForEach(c=> builder.Append(c));
    Console.WriteLine(builder);
}

Power Collections posiada typy, jakich może ci brakować w BCL (m.in. MultiDictionary<TKey, TValue> czy OrderedBag<T>). Zachęcam za do sprawdzenia tej biblioteki.

Brak komentarzy:

Prześlij komentarz