C#多条件排序OrderBy、ThenBy
2023-12-29 18:17:30
方法和效果?
?有多个排序条件,其实不用单独自己写排序方法的,C#内置了排序方法:
引用命名空间System.Linq
正向排序的方法:OrderBy首要条件;ThenBy次要条件,可以连续多个使用
同理,逆向排序对应的方法是OrderByDescending、ThenByDescending
正向排序和逆向排序可以交叉使用
完整代码
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class Test01 : MonoBehaviour
{
public class student
{
public int id { get; set; }
public string name { get; set; }
public string hometown { get; set; }
public student(int id, string name, string hometown)
{
this.id = id;
this.name = name;
this.hometown = hometown;
}
public override string ToString()
{
return $"{this.id} {this.name} {this.hometown}";
}
}
// Start is called before the first frame update
List<student> list = new List<student>()
{
new student(1, "1", "3"),
new student(1, "1", "2"),
new student(1, "2", "1"),
new student(2, "2", "2"),
new student(3, "2", "1"),
new student(2, "3", "1"),
new student(1, "3", "3"),
};
void PrintList()
{
foreach (var VARIABLE in list)
{
Debug.Log(VARIABLE.ToString());
}
Debug.LogWarning("--------------------------");
}
void Start()
{
PrintList();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
//依次安装id,name,hometown正向排序
list = list.OrderBy(x => x.id).ThenBy(x => x.name).ThenBy(x => x.hometown).ToList();
;
PrintList();
}
if (Input.GetKeyDown(KeyCode.S))
{
//依次安装id,name,hometown反向排序
list = list.OrderByDescending(x => x.id).ThenByDescending(x => x.name).ThenByDescending(x => x.hometown).ToList();
;
PrintList();
}
}
}
参考连接
文章来源:https://blog.csdn.net/yhx956058885/article/details/135294703
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!