版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/leolinsheng/article/details/54090774
/********************************************************************
created: 2016/08/12
author:
purpose: 编写排序比较器
*********************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HVIC.VideoMonitorPlugin
{
public class ComparisonFunc
{
#region
public static int CmpVideoGroup(ViSmartDBManage.Model.ModelVideoGroup lhs, ViSmartDBManage.Model.ModelVideoGroup rhs)
{
try
{
return lhs.GroupName.CompareTo(rhs.GroupName);
}
catch (System.Exception ex)
{
return 0;
}
}
#endregion
#region
private static string GetID(VideoModel info)
{
try
{
return info.VideoName.Substring(0, info.VideoName.IndexOf('_'));
}
catch (System.Exception ex)
{
return string.Empty;
}
}
public static int CmpVideoModel(VideoModel lhs, VideoModel rhs)
{
try
{
string left = GetID(lhs);
string right = GetID(rhs);
char lchar = left.FirstOrDefault();
char rchar = right.FirstOrDefault();
if (lchar != rchar)
return lchar.CompareTo(rchar);
return int.Parse(left).CompareTo(int.Parse(right)); //有可能会catch
}
catch (System.Exception ex)
{
return 0;
}
}
#endregion
}
}
ViSmartDBManage.QueryObject.Query query = new ViSmartDBManage.QueryObject.Query();
List<ModelVideoGroup> lstVideoGroup = m_app.DataService.DatabaseManager.BalVideoGroup.GetModelList(query);
lstVideoGroup.Sort(ComparisonFunc.CmpVideoGroup);