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; }

}

来源: 谢斌个人博客C#中List排序的实现方法(Linq,OrderBy,冒泡排序法)
转载请以链接形式标明本文地址!本文地址:http://www.xb02.com/article/109/
发表评论

发表评论