c# - 如何序列化具有自定义 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",
"3":"C",
"2":"B",
"1":"A"
}
有人能帮我吗?
解决方案
推荐阅读
- python - 如何使用 raspberypi 3b+ 将文件上传到 Firebase
- vb.net - 使用 Newtonsoft.Json.JsonConvert.DeserializeObject VISUAL BASIC 将 json 字符串反序列化为 Visual Basic 对象
- c# - 使用引用项目解决 Nuget 依赖项
- java - 我们可以在以下场景中使用 java 流吗?
- spring-boot - spring-boot-security 2.2.5 - java.lang.NoClassDefFoundError:org/bouncycastle/crypto/params/Argon2Parameters
- haskell - Haskell中索引时间的重复列表元素
- excel - 关于vba运行时错误1004的问题
- android - 无法从 cmake.dir 获取版本
- javascript - 在 POST 请求中动态创建文件以供下载
- excel - 在 UserForm 中的 ComboBox 列表中使用自定义日期格式