【问题标题】:How to get class property name with spaces? [duplicate]如何获取带空格的类属性名称? [复制]
【发布时间】:2015-03-18 12:49:04
【问题描述】:

我有一堂课:

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

【问题讨论】:

  • 您可以进行正则表达式搜索和替换以匹配大写字母,而不是在字符串的开头,并且后面不跟大写字母或在字符串的末尾。

标签: c#


【解决方案1】:

您可以尝试一个正则表达式,例如:

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?

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 2011-02-04
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2020-10-05
    • 2021-10-20
    • 2018-06-08
    • 2012-05-06
    相关资源
    最近更新 更多