using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace QxQ { class Program { static void Main(string[] args) { Func<IEnumerable<int>, IEnumerable<int> , List<List<KeyValuePair<KeyValuePair<int, int>, int>>>> tblmaker; tblmaker = new Func<IEnumerable<int>, IEnumerable<int> , List<List<KeyValuePair<KeyValuePair<int, int>, int>>>>( (IEnumerable<int> row, IEnumerable<int> col) => { List<List<KeyValuePair<KeyValuePair<int, int>, int>>> ret = new List<List<KeyValuePair<KeyValuePair<int, int>, int>>>(); row.ToList().ForEach(i => { List<KeyValuePair<KeyValuePair<int, int>, int>> rows = new List<KeyValuePair<KeyValuePair<int, int>, int>>(); col.ToList().ForEach(j => { rows.Add(new KeyValuePair<KeyValuePair<int, int>, int>( new KeyValuePair<int, int>(i, j), i * j)); }); ret.Add(rows); }); return ret; }); List<List<KeyValuePair<KeyValuePair<int, int>, int>>> tbl = tblmaker(Enumerable.Range(1, 10), Enumerable.Range(1, 9)); Console.WriteLine(tbl); Display(tbl); Console.ReadLine(); /* System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Colle ctions.Generic.KeyValuePair`2[System.Collections.Generic.KeyValuePair`2[System.I nt32,System.Int32],System.Int32]]] ((1 . 1) 1)((1 . 2) 2)((1 . 3) 3)((1 . 4) 4)((1 . 5) 5)((1 . 6) 6)((1 . 7) 7)((1 . 8) 8)((1 . 9) 9) ((2 . 1) 2)((2 . 2) 4)((2 . 3) 6)((2 . 4) 8)((2 . 5) 10)((2 . 6) 12)((2 . 7) 14)((2 . 8) 16)((2 . 9) 18) ((3 . 1) 3)((3 . 2) 6)((3 . 3) 9)((3 . 4) 12)((3 . 5) 15)((3 . 6) 18)((3 . 7) 21)((3 . 8) 24)((3 . 9) 27) ((4 . 1) 4)((4 . 2) 8)((4 . 3) 12)((4 . 4) 16)((4 . 5) 20)((4 . 6) 24)((4 . 7) 28)((4 . 8) 32)((4 . 9) 36) ((5 . 1) 5)((5 . 2) 10)((5 . 3) 15)((5 . 4) 20)((5 . 5) 25)((5 . 6) 30)((5 . 7) 35)((5 . 8) 40)((5 . 9) 45) ((6 . 1) 6)((6 . 2) 12)((6 . 3) 18)((6 . 4) 24)((6 . 5) 30)((6 . 6) 36)((6 . 7) 42)((6 . 8) 48)((6 . 9) 54) ((7 . 1) 7)((7 . 2) 14)((7 . 3) 21)((7 . 4) 28)((7 . 5) 35)((7 . 6) 42)((7 . 7) 49)((7 . 8) 56)((7 . 9) 63) ((8 . 1) 8)((8 . 2) 16)((8 . 3) 24)((8 . 4) 32)((8 . 5) 40)((8 . 6) 48)((8 . 7) 56)((8 . 8) 64)((8 . 9) 72) ((9 . 1) 9)((9 . 2) 18)((9 . 3) 27)((9 . 4) 36)((9 . 5) 45)((9 . 6) 54)((9 . 7) 63)((9 . 8) 72)((9 . 9) 81) ((10 . 1) 10)((10 . 2) 20)((10 . 3) 30)((10 . 4) 40)((10 . 5) 50)((10 . 6) 60)((10 . 7) 70)((10 . 8) 80)((10 . 9) 90) */ var tablemaker2 = new Func<IEnumerable<int>, IEnumerable<int> , List<List<KeyValuePair<KeyValuePair<int, int>, int>>>>((row, col) => { var ret = new List<List<KeyValuePair<KeyValuePair<int, int>, int>>>(); row.ToList().ForEach(i => { var rows = new List<KeyValuePair<KeyValuePair<int, int>, int>>(); col.ToList().ForEach(j => { rows.Add(new KeyValuePair<KeyValuePair<int, int>, int>( new KeyValuePair<int, int>(i, j), i * j)); }); ret.Add(rows); }); return ret; }); } private static void Display(List<List<KeyValuePair<KeyValuePair<int, int>, int>>> tbl) { tbl.ForEach(list => { list.ForEach(pair => { Console.Write("(({0} . {1}) {2})" , pair.Key.Key, pair.Key.Value, pair.Value); }); Console.WriteLine(); }); } } } |
0 件のコメント:
コメントを投稿