如何连接一个属性中的字段

时间:2013-08-21 05:54:11

标签: c# asp.net linq

我有属性列表。喜欢

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。我怎样才能做到这一点。我想避免循环记录。

4 个答案:

答案 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);
    }
}