2012-09-23 198 views
1

我想将几个字符串属性合并为一个字符串,以使排序和显示更容易。我想知道是否有办法做到这一点,而不必遍历集合或类的列表。类似于下面的Person类中的FullName。是否有可能创建一个类属性是其他属性的组合?

public class Person 
{ 
    public string Last {get;set;} 
    public string First {get;set;} 

    public string FullName = Last + ", " + First {get;} 
} 

回答

6

更新您的类像这样:

public class Person 
{ 
    public string Last { get; set; } 
    public string First { get; set; } 

    public string FullName 
    { 
     get 
     { 
      return string.Format("{0}, {1}", First, Last); 
     } 
    } 
} 

附加到你的问题,我也建议实施ToString()方法的重写(你问题提到使显示变得更容易),因为大多数UI技术将使用它作为显示对象的默认方式。

public override string ToString() 
{ 
    return FullName; 
} 
+0

我最喜欢这个,但是你不小心换掉了First and Last – SLoret

3
public string FullName { 
    get{ 
    return Last + ", " + First; 
    } 
} 
3

肯定的:

public string FullName 
{ 
    get 
    { 
     return FirstName + ", " + LastName; 
    } 
} 
+2

这个问题是一个很好的例子,代表高代表比起代表低代表的人更容易获得高票价。 :) – aquinas

+0

@aquinas是真的,它的奇怪,看看有些答案得到更多的投票,即使他们是完全相同的其他人 – Thousand

+0

它被称为社会证明。 http://en.wikipedia.org/wiki/Social_proof。作为人类的一部分。 –

2

为什么不呢?

public string FullName 
{ 
    get { return Last + ", " + First; } 
} 
1

试试这个:

public string FullName 
    { 
      get 
      { 
       return Last + " " + First;  
      }   
     } 
1
public string Fullname 
{ 
    get 
    { 
     return string.Format("{0}, {1}", Last, First); 
    } 
    set 
    { 
     string[] temp = value.Split(','); 
     Last = temp[0].Trim(); 
     First = temp[1].Trim(); 
    } 
} 
1

是。你可以在你的课堂上使用一个属性来做同样的事情。即使微软建议在类中做一个无效方法,只需要将类的字段作为属性而不是方法进行简单的操作。

相关问题