获得了“ClientContacts”列表——其中有一个 LastName(如果是人类)或一个 EntityName(如果是通用联系人,例如 techsupport@mycompany.com)。
我想要做的是按姓氏字母顺序排序此列表,并且在不存在姓氏的情况下(换句话说,存在实体名),将该实体名视为姓氏,并继续排序,就好像它是姓氏一样。
所以想要的结果看起来像:
- 邦德詹姆斯
- 客户支持
- 盖茨比尔
- 技术支持
- 威廉姆斯罗宾
这会导致崩溃,因为它会遇到一些没有姓氏的 ClientContact。
clientContactList.Sort(
delegate(ClientContact c1, ClientContact c2)
{ return c1.LastName.CompareTo(c2.LastName); });
以下允许我在不崩溃的情况下通过,它按 ClientContact EntityName 的第一个排序,然后是 LastNames:
list.Sort(delegate(ClientContact c1, ClientContact c2) {
try
{
return c1.LastName.CompareTo(c2.LastName);
}
catch
{
try
{
return c1.EntityName.CompareTo(c2.LastName);
}
catch
{
return c1.EntityName.CompareTo(c2.EntityName);
}
}
});
导致:
- 客户支持
- 技术支持
- 邦德詹姆斯
- 盖茨比尔
- 威廉姆斯罗宾
我怎样才能让我的列表排序看起来像上面想要的结果?