C# 根据实体类的属性动态生成字符串

情景:

目前有两个实体类:Student,ClassInfo.

public class Student {
public string Name { get; set; }
public string Sex { get; set; }
public string Age { get; set; }
}
public class Classinfo
{
public string Subject { get; set; }
public int Score { get; set; }
}

 

Student stu = new Student() { Name="张三",Sex="",Age="18"};
Classinfo cla = new Classinfo() { Subject="语文",Score=89};

希望拼接生成一串动态的字符串(非使用string.Format)。里面的属性可以增加,删除,随意改变顺序。如:

--情况1
string msg = "学生:[Student.Name],[Student.Sex],[Student.Age]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";
---处理后结果输出
学生:张三,男,18岁。课程得分:语文:89.

--情况2
string msg = "学生:[Student.Name],[Student.Age]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";
---处理后结果输出
学生:张三,18岁。课程得分:语文:89.

--情况2
string msg = "[Student.Age]岁的[Student.Name]的[Classinfo.Subject]成绩:[Classinfo.Score].";
---处理后结果输出
18岁的张三的语文成绩:89.

 

处理方法:

Student stu = new Student() { Name="张三",Sex="",Age="18"};
Classinfo cla = new Classinfo() { Subject="语文",Score=89};

object[] sources = new object[] { stu,cla };
string msg = "学生:[Student.Name],[Student.Sex],[Student.Age]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";

 foreach (var source in sources)
 {
   if (source == null)
       continue; 
   msg = MessageBodyFactory.GetMessageBody(source, msg);
 }
//msg中可以随意修改。。

string msg = "学生:[Student.Name],[Student.Sex]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";
string msg = "[Student.Age]岁的[Student.Name]的[Classinfo.Subject]成绩:[Classinfo.Score].";

 源码地址:http://files.cnblogs.com/gguozhenqian/ConsoleApplication1.zip

转载于:https://www.cnblogs.com/gguozhenqian/p/4080469.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值