C#中List排序的实现方法(Linq,OrderBy,冒泡排序法)
C#中对List集合进行排序有很多种实现方法,这里介绍以下几种实现方法。
1、通过Linq语法进行排序。
var query = from x in list
orderby x.UserId
select x;
list = query.ToList();
2、利用函数OrderBy对元素集合进行排序。
list = list.OrderBy(x => x.UserId).ToList();
3、冒牌排序法。
UserInfo tempObj = null;
for (int i = 1; i < list.Count; i++)
{
for (int j = 0; j < list.Count - i; j++)
{
if (list[j].UserId > list[j + 1].UserId)
{
tempObj = list[j];
list[j] = list[j + 1];
list[j + 1] = tempObj;
}
}
}
完整代码如下:
/// <summary>
/// Page_Load
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
//构造测试数据
List<UserInfo> list = new List<UserInfo>() {
new UserInfo(){ UserId = 3, UserName = "小明" },
new UserInfo(){ UserId = 1, UserName = "小红" },
new UserInfo(){ UserId = 5, UserName = "小张" },
new UserInfo(){ UserId = 2, UserName = "小黄" },
new UserInfo(){ UserId = 6, UserName = "小吴" },
new UserInfo(){ UserId = 4, UserName = "小李" }
};
//输出排序前的元素
Response.Write("排序前:<br/>");
foreach (UserInfo userInfo in list)
{
Response.Write(userInfo.UserId + " " + userInfo.UserName);
Response.Write("<br/>");
}
Response.Write("<br/><br/>");
//第一种:通过Linq语法进行排序。
var query = from x in list
orderby x.UserId
select x;
list = query.ToList();
//第二种:利用函数OrderBy对元素集合进行排序。
list = list.OrderBy(x => x.UserId).ToList();
//第三种:冒泡排序法
UserInfo tempObj = null;
for (int i = 1; i < list.Count; i++)
{
for (int j = 0; j < list.Count - i; j++)
{
if (list[j].UserId > list[j + 1].UserId)
{
tempObj = list[j];
list[j] = list[j + 1];
list[j + 1] = tempObj;
}
}
}
//输出排序后的元素
Response.Write("排序后:<br/>");
foreach (UserInfo userInfo in list)
{
Response.Write(userInfo.UserId + " " + userInfo.UserName);
Response.Write("<br/>");
}
}
/// <summary>
/// 数据模型
/// </summary>
public class UserInfo
{
public int UserId { get; set; }
public string UserName { get; set; }
}
转载请以链接形式标明本文地址!本文地址:https://www.xb02.com/article/109