實體封裝:
public class User
{
/// <summary>
/// 名稱
/// </summary>
public string Name { get; set; }
/// <summary>
/// 年齡
/// </summary>
public int Age { get; set; }
/// <summary>
/// 性別
/// </summary>
public string Sex { get; set; }
/// <summary>
/// 手機
/// </summary>
public string Mobile { get; set; }
}
實體排序規則:
<span style="font-size:18px;"> public class UserCompare : IComparer<User>
{
public int Compare(User source, User target)
{
int result = -1;
if (source.Age > target.Age)
result = 1;
if (source.Age == target.Age)
result = 0;
if (source.Age == target.Age)
result = -1;
return result;
}
}</span>
冒泡排序封裝:
<span style="font-size:18px;">public class BubbleSort
{
/// <summary>
/// 冒泡排序封裝
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="data"></param>
/// <param name="comparer"></param>
/// <returns></returns>
public static IList<T> SelectSort<T>(IList<T> data, IComparer<T> comparer)
{
if (null == null || data.Count == 0)
return default(IList<T>);
for (int i = 0; i < data.Count - 1; i++)
{
for (int j = i + 1; j < data.Count; j++)
{
if (comparer.Compare(data[i], data[j]) > 0)
{
var temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
return data;
}
}</span>
<span style="font-size:18px;">public class SortClient
{
public void SortUser()
{
List<User> lstUser = new List<User>();
User zhangsan = new User();
zhangsan.Age = 2;
zhangsan.Name = "張三";
lstUser.Add(zhangsan);
User lisi = new User();
lisi.Age = 5;
lisi.Name = "李四";
lstUser.Add(lisi);
User wangwu = new User();
wangwu.Age = 4;
wangwu.Name = "王五";
lstUser.Add(wangwu);
User zhaoliu = new User();
zhaoliu.Age = 3;
zhaoliu.Name = "趙六";
lstUser.Add(zhaoliu);
IList<User> lstUserSort = BubbleSort.SelectSort<User>(lstUser, new UserCompare());
}
} </span>