我有属性列表。喜欢
public string name {get;set;}
public string lastname {get;set;}
public string age {get;set;}
public string fullName {get;set;}
现在我要做的是在最后'FullName'
属性中连接前3个属性。
表示我有name = John, Lastname = smith, age = 20
然后
Fullname should be John Smith 20
我该怎么做?我应该在Domain Class
的帮助下setter property
执行此操作,还是可以使用Linq.
我有超过1000条记录带入IEnumerable
。我怎样才能做到这一点。我想避免循环记录。
答案 0 :(得分:8)
我会将其设为只读属性 - 除非您希望在设置时将值解析为位。所以:
public string FullName
{
// This is assuming you've also fixed the property names to be conventional
// I'd also suggest changing "Name" to "GivenName" or "FirstName".
get { return string.Format("{0} {1} {2}", Name, LastName, Age); }
}
如果确实希望拥有一个setter,我建议用空格分割输入,然后设置其他三个属性。 Don&#t> 为FullName
属性(独立字段)分别存储,否则数据可能会变得不一致。
答案 1 :(得分:1)
没有直接回答这个问题,因为它已经被回答了,但你可能会觉得这很有用。
您也可以覆盖类中的ToString方法。
public override string ToString()
{
return string.Format("{0} {1} {2}", Name, LastName, Age);
}
其中一个好处是在调试IEnumerable的调试过程中,您可以一目了然地查看基础数据,而无需深入查看每个项目。
答案 2 :(得分:0)
public string FullName
{
get
{
return name + " " + lastname + " " + age.ToString();
}
}
或者
public string FullName
{
get
{
return string.Format("{0} {1} {2}", name, lastname, age);
}
}
答案 3 :(得分:0)
仅使用getter定义属性:
public string FullName
{
get
{
return String.Format("{0} {1} {2}", this.Name, this.LastName, this.Age);
}
}