求大神,用C#写:用户输入一段字符串,然后把字符串按照ASCII值大小排列,并输出。。。。。。

如题所述

namespace Test
{
    public class Program
    {
        static void Main(string[] args)
        {
            var data = TestData.List;
            Func<List<int>, int, List<int>> add =
            (x, id) =>
            {
                x.Insert(0, id);
                return x;
            };
            Func<List<TestInfo>, int?, List<int>> sort = null;
            sort = (x, id) =>
            {
                List<int> r = new List<int>();
                var q = from i in x where i.ParentId == id orderby i.OrderId select add(sort(x, i.Id), i.Id);
                foreach (var item in q)
                {
                    r.AddRange(item);
                }
                return r;
            };
            var result = sort(data, null);
            foreach (var item in result)
            {
                Console.Write(item + " ");
            }
            /*2 3 5 8 4 9 1 7 6 10*/
        }
    }
    public static class TestData
    {
        public static List<TestInfo> List = new List<TestInfo>()
        {
            new TestInfo() { Id = 1, ParentId = null, OrderId = 2 },
            new TestInfo() { Id = 2, ParentId = null, OrderId = 1 },
            new TestInfo() { Id = 3, ParentId = 2, OrderId = 1 },
            new TestInfo() { Id = 4, ParentId = 2, OrderId = 3 },
            new TestInfo() { Id = 5, ParentId = 2, OrderId = 2 },
            new TestInfo() { Id = 6, ParentId = 1, OrderId = 2 },
            new TestInfo() { Id = 7, ParentId = 1, OrderId = 1 },
            new TestInfo() { Id = 8, ParentId = 5, OrderId = 1 },
            new TestInfo() { Id = 9, ParentId = 2, OrderId = 4 },
            new TestInfo() { Id = 10, ParentId = null, OrderId = 3 }
        };
    }
    public class TestInfo
    {
        public int Id { get; set; }
        public int? ParentId { get; set; }
        public int OrderId { get; set; }
    }
}追问

可以运行,但大神的答案没有达到题目要求,我想把输入的字符串保存到一个数组里,然后用冒泡排序把按ASCII大小排序,调用其sort方法,在一个个转成char型,输出。但我做的一直有问题,所以求大神能否重写一次,谢.

追答

string zxc=你输入的字符串
char[] charList=zxc.ToArry()
好象是..我手码的.你自己找找看
C#有封装一个方法直接把字符串转换成CHAR
然后在把CHAR转换成数字.按照我上面的排序
然后输出

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-14
你先把 用户输入的字符串分解成一个字符的数组,在排序就行了追问

我的思路是:我想把输入的字符串保存到一个数组里,然后用冒泡排序把按ASCII大小排序,调用其sort方法,在一个个转成char型,输出。但我不知道,把输入的字符串保存到数组里这段代码该怎么写,求大神指导。

追答

写个循环啊
string strTemp="abcskldfjsl";
for(int i=0;i<.strTemp.length;i++){
//在这里用substring 就可以了,substring 是用来分割字符串的 方法

}

本回答被提问者采纳
相似回答