我正在使用第三方服务,该服务返回状态码为Y,N,S,D等的JSON对象。我想根据状态码的含义对结果进行排序,以使Y应该在N之前,应该在S之前,应该在D之前。在CSharp中完成此操作的最简单方法是什么?性能并不是最重要的,因为对于任何给定的请求,我希望最多获得10个结果。
响应示例:
[ { ..., status: 'Y' },
{ ..., status: 'D' },
{ ..., status: 'N' } ]
我已经在使用JSON.NET将它们反序列化为JArray,如果这可以作为一个起点。
您可以创建一个自定义比较类
public class CustomSorter : IComparer
{
public int Compare(object x, object y)
{
var chars = "YNSD";
if (chars.IndexOf((char)x) < chars.IndexOf((char)y))
return -1;
return chars.IndexOf((char)x) > chars.IndexOf((char)y) ? 1 : 0;
}
}
然后使用新的排序器对您拥有的数组进行排序
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句