C#趣味题目.

// 要求算一任意长度字符串中不同的字符以及它的个数。
//c#3.0
/***************第一种方法**********************/
var values = "abcdefgabc"
              .GroupBy(c => c)
              .Select(g => String.Format("{0}, {1}", g.Key, g.Count()))
              .ToArray();
            Array.ForEach(values, Console.WriteLine);
/***************第二种方法**********************/
             "abcdefgabc"
                        .GroupBy(c => c).ToList()
                        .ForEach(g => Console.WriteLine(g.Key + ", " + g.Count()));
/***************第三种方法**********************/
            var text = "abcdefgabc";
            var result = from c in text group c by c into g select g;
            foreach (var g in result)
            Console.WriteLine(g.Key + "," + g.Count());
-
  //把一段字符串用“右起竖排”的古文格式输出。
            Print("床前明月光疑似地上霜举头望明月低头思故乡", 5);
/***************第一种方法**********************/
-
  static void Print(string text, int offset)
        {
            for (var j = 0; j < offset; j++)
            {
                for (var i = text.Length - offset + j; i >= 0; i -= offset)
                {
                    Console.Write(text[i] + "|");
                }
                Console.WriteLine();
            }
        }
-
/***************第二种方法**********************/
static void Print(IEnumerable<char> text, int offset)
        {
            var matrix = text
                .Select((c, i) => new { Char = c, Index = i })
                .GroupBy(c => c.Index % offset, c => c.Char.ToString());
            Array.ForEach(
                matrix.ToArray(),
                a => Console.WriteLine(String.Join("|", a.Reverse().ToArray())));
        }
/***************第三种方法**********************/
static void Print(IEnumerable<char> text, int offset)
        {
            text
                .Select((c, i) => new { Char = c, Index = i })
                .GroupBy(c => c.Index % offset, c => c.Char.ToString()).ToList()
                .ForEach(g => Console.WriteLine(string.Join("|", g.Reverse().ToArray())));
        }
posted @ 2009-03-28 00:01  HiEagle  阅读(995)  评论(5)    收藏  举报