まず、クエリで直接それを行うことができます。
var list = db.Teams.OrderBy(t => t.Name == "Total" ? 1 : 0).ToList();
しかし、あなたはリストが移入された後、あなたは、全項目のインデックスを見つけるために、FindIndex
メソッドを使用することができ、それをやって主張する場合(もしあれば)、およびそれらRemoveAt
とAdd
方法を使用して最後に項目を移動する:あなたは本当に別をより効率的に、リスト内の他の項目の順序を気にしない場合は、後者の場合には
var list = db.Teams.ToList();
int index = list.FindIndex(t => t.Name == "Total");
if (index >= 0 && index != list.Count - 1)
{
var total = list[index];
list.RemoveAt(index);
list.Add(total);
}
を方法はtになります単に最後の要素と合計を交換してください:
if (index >= 0 && index != list.Count - 1)
{
var total = list[index];
list[index] = list[list.Count - 1];
list[list.Count - 1] = total;
}
最終的にはどういう意味ですか?あなたが次のインデックスを意味するなら、それはそのデフォルトの動作です – Yar
なぜC#側またはデータベース側でリストをソートできないのですか?アイテムを削除してインデックスに基づいてリストに戻すこともできます。また、質問を編集して、現在のリスト内のアイテムの外観を正確に表示することができます。 – MethodMan
@Yarリストの最後まで。私はデータベースからチームのリストを取得します。 "Total"という名前のチームがそのリストの中央にある場合、そのリストの最後にソートしたいと思います。 –