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的值,但是好像不可以。大家有什么解决方案么?
http://blog.csdn.net/nd200642/archive/2009/01/07/3726813.aspx
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*/
PadLeft(6, '0')
Console.WriteLine("{0}\t{1}", a.Name.PadRight(maxNameLength1), a.Age);
PadRight 这个用法貌似更简单!
你说的是从性能上考虑么?比如说我这个list里面的元素太多的话,之后遍历就费时间?但是我觉得添加完一个就判断的话很麻烦的,加10个 判断10次 代码太多了