多条件排序(C# and Lua)

embedded/2025/3/31 11:17:39/

C#

升序排序

OrderBy

按升序对序列的元素进行排序

ThenBy

按升序对序列中的元素执行后续排序

降序排序

OrderByDescending

按降序对序列的元素排序

ThenByDescending

按降序对序列中的元素执行后续排序

public class Fruit
{public int id;public string name;public float price;public float weight;
}List<Fruit> list = new List<Fruit>();
list.Add(new Fruit { id = 2, name = "苹果", price = 9.9f ,weight = 500});
list.Add(new Fruit { id = 5, name = "西瓜", price = 1.2f, weight = 5000 });
list.Add(new Fruit { id = 1, name = "草莓", price = 29.9f, weight = 80 });
list.Add(new Fruit { id = 3, name = "香蕉", price = 6f, weight = 800 });
list.Add(new Fruit { id = 4, name = "哈密瓜", price = 2.5f, weight = 3000 });

升序排序

IOrderedEnumerable<Fruit> result = list.OrderBy(x => x.id).ThenBy(x=>x.price).ThenBy(x=>x.weight);

降序排序

IOrderedEnumerable<Fruit> result = list.OrderByDescending(x => x.id).ThenByDescending(x=>x.price).ThenByDescending(x=>x.weight);

Lua

local list = {[1] = {id = 101,name = "小明",age = 16,score = 88};[2] = {id = 103,name = "小红",age = 15,score = 91};[3] = {id = 107,name = "小刚",age = 16,score = 81};[4] = {id = 105,name = "小丽",age = 15,score = 91};[5] = {id = 104,name = "小龙",age = 14,score = 88};
}table.sort(list,function(a,b)if a.score == b.score thenif a.age == b.age thenreturn a.id > b.idelsereturn a.age > b.ageend  elsereturn a.score > b.scoreend  end)


http://www.ppmy.cn/embedded/176578.html

相关文章

区块链驱动金融第十章——走进另类币与加密货币生态系统:比特币之外的广阔天地

在加密货币的领域中,比特币虽然占据着重要地位,但它并非唯一的主角。随着区块链技术的不断发展,各种各样的另类币如雨后春笋般涌现,共同构建了一个丰富多彩且充满活力的加密货币生态系统。让我们深入第十章的内容,去探寻这一生态系统的奥秘。 另类币:比特币的 “挑战者”…

XSS复现漏洞简单前八关靶场

靶场不需要安装任意环境 链接如下&#xff1a;XSS Game - Learning XSS Made Simple! | Created by PwnFunction 目录 XSS Game 第一关&#xff1a;Ma Spaghet! 第二关&#xff1a;Jefff 第三关&#xff1a;Ugandan Knuckles 第四关&#xff1a;Ricardo Milos 第五关&am…

OpenGL ES ->乒乓缓冲,计算只用两个帧缓冲对象(Frame Buffer Object)+叠加多个滤镜作用后的Bitmap

乒乓缓冲核心思想 不使用乒乓缓冲&#xff0c;如果要每个滤镜作用下的绘制内容&#xff0c;也就是这个滤镜作用下的帧缓冲&#xff0c;需要创建一个Frame Buffer Object加上对应的Frame Buffer Object Texture使用乒乓缓冲&#xff0c;只用两个Frame Buffer Object加上对应的F…

Java医疗知识图谱知识库构建(源码)

基于Java、Neo4j和ElasticSearch构建的医疗知识图谱知识库&#xff0c;是一个融合图数据库技术与搜索引擎的智能化医疗知识管理系统。该系统以Neo4j图数据库为核心&#xff0c;利用其高效的图结构存储能力&#xff0c;将疾病、症状、药品、检查项目、科室等医疗实体抽象为节点&…

Leetcode 刷题笔记 图论part05

卡码网 107 寻找存在的路径 初识并查集 并查集功能&#xff1a; 寻找根节点&#xff0c;函数: find(int u)&#xff0c;也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合&#xff0c;函数: join(int u, int v)&#xff0c;将两个节点连在同一个根节点上判断两…

如何在 React 项目中进行服务器端渲染(SSR),它有什么优势

大白话如何在 React 项目中进行服务器端渲染&#xff08;SSR&#xff09;&#xff0c;它有什么优势 什么是服务器端渲染&#xff08;SSR&#xff09; 在传统的 React 项目里&#xff0c;页面的渲染工作是在浏览器里完成的。也就是当你访问一个网页时&#xff0c;浏览器会先下…

LiteratureReading:[2023] GPT-4: Technical Report

文章目录 一、文献简明&#xff08;zero&#xff09;二、快速预览&#xff08;first&#xff09;1、标题分析2、作者介绍3、引用数4、摘要分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;分析 5、总结分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;…

23种设计模式-享元(Flyweight)设计模式

享元设计模式 &#x1f6a9;什么是享元设计模式&#xff1f;&#x1f6a9;享元设计模式的特点&#x1f6a9;享元设计模式的结构&#x1f6a9;享元设计模式的优缺点&#x1f6a9;享元设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是享元设计模式…