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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM