如何解决如何序列化具有自定义IComparer的SortedDictionaty
目标很简单。按DESC键指定字典的序列化顺序。
[HttpGet]
[Route("")]
public IActionResult test()
{
var dic = new SortedDictionary<int,string>(new DescComparer<int>())
{{1,"A"},{3,"C"},{4,"D"},{2,"B"}};
return Ok(dic);
}
class DescComparer<T> : IComparer<T>
{
private readonly IComparer<T> _defaultComparer = Comparer<T>.Default;
public int Compare([AllowNull] T x,[AllowNull] T y)
{
return _defaultComparer.Compare(y,x);
}
}
结果是:
{
"1":"A","2":"B","3":"C","4":"D"
}
我想要的是:
{
"4":"D","1":"A"
}
有人可以帮我吗?
解决方法
尝试一下:
class DescComparer<T> : IComparer<T> where T : IComparable<T>
{
//private readonly IComparer<T> _defaultComparer = Comparer<T>.Default;
public int Compare(T x,T y)
{
return y.CompareTo(x);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。