如何获取带有空格的类属性名称?

时间:2015-03-18 12:49:05

标签: c#

我有一个班级:

MyClass
{
   public int Id{set;get;}
   public string MollName{set;get;}
   public string MollAddress{set;get;}
   public string MollPRG{set;get;}
}

我用它在Excel中生成报告。我编写了一个完整的文档,所以我没有任何模板 为了制作报告的列名,我使用:

var fields = typeof(MyClass).GetFields(
            BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
var names = Array.ConvertAll(fields, field => field.Name).ToList();

var trimedNames = names.Select(name => name.Substring(1, name.IndexOf(">", StringComparison.Ordinal) - 1)).ToList();
foreach (var fieldName in trimedNames)
{
//**some code
}

我收到包含列名的报告:

Id
MollName
MollAddress
MollPRG

我如何用空格来获取它?:

Id
Moll Name
Moll Address
Moll PRG

1 个答案:

答案 0 :(得分:2)

你可以试试一个正则表达式,样本:

foreach (var fieldName in trimedNames)
{
    var fieldNameWithSpaces = Regex.Replace(fieldName, "(\\B[A-Z])", " $1");

    // you can use fieldNameWithSpaces here...
}

请参阅此帖子:.NET - How can you split a "caps" delimited string into an array?