Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 1.12 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. convert a line of python code list comprehension / cross product (create a poker deck as a list of two characters strings: rank, suite) to C#
  2. poker_deck = [r+s for r in '23456789TJQKA' for s in 'SHDC']
  3.        
  4. char[] figures = "23456789TJQKA".ToCharArray();
  5. char[] suites = "SHDC".ToCharArray();
  6. List<string> deck = new List<string>();
  7.  
  8. foreach (var figure in figures)
  9. {
  10.     foreach (var suite in suites)
  11.     {
  12.         deck.Add(string.Format("{0}{1}", figure, suite));
  13.     }
  14. }
  15.        
  16. var cards = from r in "23456789TJQKA"
  17.             from s in "SHDC"
  18.             select "" + r + s;
  19.        
  20. var cards = from r in "23456789TJQKA" from s in "SHDC" select "" + r + s;
  21.        
  22. var deck = "23456789TJQKA".SelectMany(
  23.                figure => "SHDC".Select(
  24.                    suite => string.Format("{0}{1}", figure, suite))).ToList();
  25.        
  26. public static IEnumerable<TOut> Pair<T1, T2, TOut>(this IEnumerable<T1> items1, IEnumerable<T2> items2, Func<T1, T2, TOut> pairer)
  27. {
  28.     return items1.SelectMany(item1 => items2.Select(item2 => pairer(item1, item2)));
  29. }
  30.        
  31. var deck = "23456789TJQKA".Pair("SHDC", (figure, suite) => string.Format("{0}{1}", figure, suite));