2

我有属性列表。像

public string name {get;set;}
public string lastname {get;set;}
public string age {get;set;}
public string fullName {get;set;}

现在我想做的是在最后一个属性中连接前 3 个'FullName'属性。

意味着如果我有name = John, Lastname = smith, age = 20

然后

Fullname should be John Smith 20

我怎样才能做到这一点。我应该在Domain Class的帮助下setter property这样做还是可以使用Linq.

我有 1000 多条记录被带进来IEnumerable 。我怎样才能做到这一点。我想避免循环记录。

4

4 回答 4

9

我会将其设为只读属性 - 除非您想在设置值时开始将其解析为位。所以:

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,我建议用空格分割输入,然后设置其他三个属性中的每一个。不要FullName属性(独立字段)单独存储,否则数据可能会变得不一致。

于 2013-08-21T05:55:58.263 回答
1

由于已经回答了问题,因此不直接回答问题,但是您可能会发现这很有用。

您还可以覆盖类中的 ToString 方法。

public override string ToString()
{
     return string.Format("{0} {1} {2}", Name, LastName, Age);
}

好处之一是在调试期间检查 IEnumerable,您可以一目了然地查看基础数据,而无需深入研究每个单独的项目。

于 2013-08-21T07:33:10.237 回答
0
public string FullName
{
    get 
    { 
        return name + " " + lastname + " " + age.ToString();
    }
}

或者

public string FullName
{
    get 
    { 
        return string.Format("{0} {1} {2}", name, lastname, age);
    }
}
于 2013-08-21T05:56:49.290 回答
0

仅使用 getter 定义属性:

public string FullName
{
    get
    {
        return String.Format("{0} {1} {2}", this.Name, this.LastName, this.Age);
    }
}
于 2013-08-21T05:57:20.787 回答