次のクラスを使用して、リストをtype
メンバーで並べ替えています。
public class CameraSortByType : IComparer<Camera>
{
private bool asc;
public CameraSortByType(bool a)
{
this.asc = a;
}
public int Compare(Camera x, Camera y)
{
if (x.type > y.type)
return asc? -1 : 1;
if (x.type < y.type)
return asc? 1 : -1;
else
return 0;
}
}
同じリストを次のように並べ替えていますname
:
myList.Sort((s1, s2) => s2.name.CompareTo(s1.name));
名前による並べ替えをタイプ別の並べ替えクラスに組み込むにはどうすればよいですか?それで、タイプでソートすると、名前でもソートされますか?
更新:Linqバージョン
var primarySortResult = primarySort ? CameraStorage.CameraList.OrderBy(x => x.type) : CameraStorage.CameraList.OrderByDescending(x => x.type);
var secondarySortResult = secondarySort ? primarySortResult.ThenBy(x => x.name) : primarySortResult.ThenByDescending(x => x.name);
CameraStorage.CameraList = secondarySortResult.ToList();