1 つの方法は、Linq を使用して姓でリストを並べ替えてから、自分自身を削除して最初の場所に戻すことです。
var personList = db.MyPersonObjects.OrderBy(p => p.Surname).ToList();
var myself = personList.Single(p => p.Id == myselfId);
personList.Remove(myself);
personList.Insert(0, myself);
IComparer<MyPersonObject>
または、実装が次のようなカスタム比較子を作成します。
public class PersonCompaper : IComparer<MyPersonObject>
{
private readonly int personId;
public PersonCompaper(int personId)
{
this.personId = personId;
}
public int Compare(MyPersonObject x, MyPersonObject y)
{
if (x.Id == personId && y.Id == personId)
return 0;
if (x.Id == personId)
return 1;
if (y.Id == personId)
return -1;
return string.Compare(x.Surname, y.Surname);
}
}
次に、それを OrderBy で使用します
db.MyPersonObjects.OrderBy(p => p, new PersonCompaper(myselfId))