多條件排序(C# and Lua)

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.pswp.cn/diannao/74144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74144.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React19源碼系列之Hooks(useId)

useId的介紹 https://zh-hans.react.dev/reference/react/useId useId 是 React 18 引入的一個新 Hook&#xff0c;主要用于生成全局唯一的 ID。在開發中&#xff0c;我們經常需要為元素&#xff08;如表單元素、模態框等&#xff09;生成唯一 ID&#xff0c;以便在 JavaScri…

經典面試題:C/C++中static關鍵字的三大核心作用與實戰應用

一、修飾局部變量&#xff1a;改變生命周期&#xff0c;保留跨調用狀態 核心作用&#xff1a; ?延長生命周期&#xff1a;將局部變量從棧區移至靜態存儲區&#xff08;數據段或BSS段&#xff09;&#xff0c;生命周期與程序一致?保留狀態&#xff1a;變量在函數多次調用間保…

Redisson 分布式鎖原理

加鎖原理 # 如果鎖不存在 if (redis.call(exists, KEYS[1]) 0) then# hash結構,鎖名稱為key,線程唯一標識為itemKey&#xff0c;itemValue為一個計數器。支持相同客戶端線程可重入,每次加鎖計數器1.redis.call(hincrby, KEYS[1], ARGV[2], 1);# 設置過期時間redis.call(pexpi…

【數據結構】棧與隊列:基礎 + 競賽高頻算法實操(含代碼實現)

什么是棧&#xff1f;什么是隊列&#xff1f; 什么是先進后出&#xff1f;什么是先進先出&#xff1f; 了解基礎之后&#xff0c;又如何用來寫算法題&#xff1f; 帶著這些疑問&#xff0c;讓我帶領你&#xff0c;走進棧與隊列的世界 棧與隊列 棧&#xff1a; 1、棧的基本…

單元化架構在字節跳動的落地實踐

資料來源&#xff1a;火山引擎-開發者社區 什么是單元化 單元化的核心理念是將業務按照某種維度劃分成一個個單元&#xff0c; 理想情況下每個單元內部都是完成所有業務操作的自包含集合&#xff0c;能獨立處理業務流程&#xff0c;各個單元均有其中一部分數據&#xff0c;所有…

基于Python的垃圾短信分類

垃圾短信分類 1 垃圾短信分類問題介紹 1.1 垃圾短信 隨著移動互聯科技的高速發展&#xff0c;信息技術在不斷改變著我們的生活&#xff0c;讓我們的生活更方便&#xff0c;其中移動通信技術己經在我們生活起到至關重要的作用&#xff0c;與我們每個人人息息相關。短信作為移…

leetcode1971.尋找圖中是否存在路徑

初嘗并查集&#xff0c;直接套用模板 class Solution { private:vector<int> father;void init() {for(int i0;i<father.size();i)father[i]i;}int find(int v) {return vfather[v]?v:father[v]find(father[v]);//路徑壓縮}bool isSame(int u,int v){ufind(u);vfind…

QAI AppBuilder 快速上手(7):目標檢測應用實例

YOLOv8_det是YOLO 系列目標檢測模型&#xff0c;專為高效、準確地檢測圖像中的物體而設計。該模型通過引入新的功能和改進點&#xff0c;如因式分解卷積&#xff08;factorized convolutions&#xff09;和批量歸一化&#xff08;batch normalization&#xff09;&#xff0c;在…

景聯文科技:以高質量數據標注推動人工智能領域創新與發展

在當今這個由數據驅動的時代&#xff0c;高質量的數據標注對于推動機器學習、自然語言處理&#xff08;NLP&#xff09;、計算機視覺等領域的發展具有不可替代的重要性。數據標注過程涉及對原始數據進行加工&#xff0c;通過標注特定對象的特征來生成能夠被機器學習模型識別和使…

MySQL 索引下推

概念 索引下推&#xff08;Index Condition Pushdown&#xff0c;簡稱 ICP&#xff09; 是 MySQL 5.6 版本中提供的一項索引優化功能&#xff0c;它允許存儲引擎在索引遍歷過程中&#xff0c;執行部分 WHERE字句的判斷條件&#xff0c;直接過濾掉不滿足條件的記錄&#xff0c;…

NVIDIA Dynamo源碼編譯

Ref https://github.com/PyO3/maturin Rust 程序設計語言 代碼庫&#xff1a; https://github.com/ai-dynamo/dynamo https://github.com/ai-dynamo/nixl dynamo/container/Dockerfile.vllm 相關whl包 官方提供了4個whl包 ai_dynamo # 這個包ubuntu 22.04也可以用&…

【Android】安卓原生應用播放背景音樂與音效(筆記)

本文提供完整的音頻管理器代碼&#xff0c;涵蓋了背景音樂&#xff08;BGM&#xff09;和短音效的播放控制。無論是游戲中的音效&#xff0c;還是應用中的背景音樂&#xff0c;通過 AudioManager&#xff0c;你可以方便地管理和控制音頻資源。 前言 在 Android 開發中&#xf…

Unity | 游戲數據配置

目錄 一、ScriptableObject 1.創建ScriptableObject 2.創建asset資源 3.asset資源的讀取與保存 二、Excel轉JSON 1.Excel格式 2.導表工具 (1)處理A格式Excel (2)處理B格式Excel 三、解析Json文件 1.讀取test.json文件 四、相關插件 在游戲開發中,策劃…

2025信創即時通訊排行:安全合規與生態適配雙輪驅動

隨著信息技術應用創新&#xff08;信創&#xff09;戰略的深化&#xff0c;國產即時通訊工具在政企市場的滲透率顯著提升。2025年作為“十四五”規劃收官之年&#xff0c;信創產業迎來規模化應用關鍵節點。本文將從認證標準、市場表現、技術架構、行業適配四大維度&#xff0c;…

關于TVS管漏電流的問題?

問題描述&#xff1a; 在量產的帶電池故事機生產中&#xff0c;工廠產線測試電流時&#xff0c;有1臺機器電流比正常機器大10mA左右。 原因分析&#xff1a; 1、分析電路原理圖&#xff0c;去除可能出現問題的電壓或器件&#xff08;不影響系統&#xff09;&#xff0c;發現…

RAG 架構地基工程-Retrieval 模塊的系統設計分享

目錄 一、知識注入的關鍵前奏——RAG 系統中的檢索綜述 &#xff08;一&#xff09;模塊定位&#xff1a;連接語言模型與知識世界的橋梁 &#xff08;二&#xff09;核心任務&#xff1a;四大關鍵問題的協調解法 &#xff08;三&#xff09;系統特征&#xff1a;性能、精度…

Java-servlet(七)詳細講解Servlet注解

Java-servlet&#xff08;七&#xff09;詳細講解Servlet注解 前言一、注解的基本概念二、Override 注解2.1 作用與優勢2.2 示例代碼 三、Target 注解3.1 定義與用途3.2 示例代碼 四、WebServlet 注解4.1 作用4.2 示例代碼 五、反射與注解5.1 反射的概念5.2 注解與反射的結合使…

機器學習——分類、回歸、聚類、LASSO回歸、Ridge回歸(自用)

糾正自己的誤區&#xff1a;機器學習是一個大范圍&#xff0c;并不是一個小的方向&#xff0c;比如&#xff1a;線性回歸預測、卷積神經網絡和強化學都是機器學習算法在不同場景的應用。 機器學習最為關鍵的是要有數據&#xff0c;也就是數據集 名詞解釋&#xff1a;數據集中的…

本地AI大模型工具箱 Your local AI toolkit:LMStudio

LMStudio介紹 官網&#xff1a;LM Studio - Discover, download, and run local LLMs LMStudio 是一個面向機器學習和自然語言處理的&#xff0c;旨在使開發者更容易構建和部署AI語言模型的應用軟件。 LMStudio的特點是&#xff1a; 完全本地離線運行AI大模型 可以從Huggi…

[OpenCV】相機標定之棋盤格角點檢測與繪制

在OpenCV中&#xff0c;棋盤格角點檢測與繪制是一個常見的任務&#xff0c;通常用于相機標定。 棋盤格自定義可參考: OpenCV: Create calibration pattern 目錄 1. 棋盤格角點檢測 findChessboardCorners()2. 棋盤格角點繪制 drawChessboardCorners()3. 代碼示例C版本python版本…