class A
    {
        public string Name { get; set; }        public int Age { get; set; }
    }List<A> Alist = new List<A>();
            Alist.Add(new A() { Name = "a", Age = 20 });
            Alist.Add(new A() { Name = "aa", Age = 20 });
            Alist.Add(new A() { Name = "aaa", Age = 20 });
            Alist.Add(new A() { Name = "aaaa", Age = 20 });
            Alist.Add(new A() { Name = "aaaaaaa", Age = 20 });想吧输出的结果是 Alist中的Name 和Age, 由于Name的长度不等,所以正常的输出格式不太好看。
我想的办法是先取到list中Name最长的长度。然后根据这个长度来动态的格式化输出字符串,但是C#好像不支持:比如,
            int maxNameLength1 = list.Max(item => item.CaseName.Length);
            foreach (A a in Alist)
            {
                Console.WriteLine("{0,-{1}}\t{2}", a.Name, maxNameLength1, a.Age);
            }
重点在{0,-{1}}上,我想动态的设置参数1的值,但是好像不可以。大家有什么解决方案么?

解决方案 »

  1.   

    这有例子
    http://blog.csdn.net/nd200642/archive/2009/01/07/3726813.aspx
      

  2.   


                List<A> Alist = new List<A>();
                Alist.Add(new A() { Name = "a", Age = 20 });
                Alist.Add(new A() { Name = "aa", Age = 20 });
                Alist.Add(new A() { Name = "aaa", Age = 20 });
                Alist.Add(new A() { Name = "aaaa", Age = 20 });
                Alist.Add(new A() { Name = "aaaaaaa", Age = 20 });            int maxNameLength1 = Alist.Max(item => item.Name.Length);
                string format = string.Format("{{0,-{0}}}\t{{1}}", maxNameLength1);
                foreach (A a in Alist)
                {
                    Console.WriteLine(format, a.Name, a.Age);
                }
    /*
    输出:
    a       20
    aa      20
    aaa     20
    aaaa    20
    aaaaaaa 20*/
      

  3.   

    其实你在添加时,就应该记住最大长度,这样后面就不用在list中查找了
      

  4.   

    解决了, string format = "{0,-" + length + "}\t{1}";字符串拼接先,大家还有其他的解决办法么
      

  5.   

    左边补0的话可以用字符串的PadLeft
    PadLeft(6, '0')
      

  6.   

    string.PadRight
    Console.WriteLine("{0}\t{1}", a.Name.PadRight(maxNameLength1), a.Age);
      

  7.   


    PadRight 这个用法貌似更简单!
      

  8.   


    你说的是从性能上考虑么?比如说我这个list里面的元素太多的话,之后遍历就费时间?但是我觉得添加完一个就判断的话很麻烦的,加10个 判断10次 代码太多了