求C#泛型列表List數據的最大值、最小值、平均值、和顛倒順序

2021-01-09 一都編程

C#核心開發-第17單元-泛型-第6節:聚合函數(最大值、最小值、平均值、總和、顛倒順序)

C#核心開發-泛型列表聚合函數

1. 聚合函數介紹

在C#的泛型列表List<T>中,當T傳入不同的數據類型時,其List<T>對象中可用的方法或屬性也是不一樣的。

那麼,對於泛型列表List<T>實例化時,T是數字類型時,可以使用聚合函數進行一些運算。這些聚合函數使用廣泛,且都是微軟已經為我們封裝好的,我們只需要知道它們的含義及如何調用就可以了。

在C#泛型列表List<T>對象實例中,有如下幾個常見的聚合函數有:

(1). Max():求列表所有數據中的最大值。

(2). Min():求列表所有數據中的最小值。

(3). Average():求列表中所有數據的平均值。

(4). Sum():求列表中所有數據的總和。

(5). Reverse():是將列表中原來數據的順序顛倒一下,是在原列表中顛倒數據順序的,所以此方法會影響原始列表。

2. 編寫代碼

現在,我們使用Visual Studio 2019 IDE開發工具創建一個.NET控制臺應用程式,然後在Main()方法中編寫C#代碼來講解泛型列表List<T>的聚合函數的使用。

求最大值、最小值等-圖1

在C#泛型列表List<T>中使用聚合函數的完整代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Yidosoft.Edu.Csharp.GenericSets{class Program { static void Main(string[] args) { Console.Title = "泛型列表List<T>的聚合函數 - 一都編程"; List<int> intList = new List<int>(); intList.Add(100); intList.Add(200); intList.Add(300); intList.Add(400); intList.Add(500); //最大值 var max = intList.Max(); //最小值 var min = intList.Min(); //平均值 var avg = intList.Average(); //求和 var sum = intList.Sum(); //顛倒順序,影響原始列表。 intList.Reverse(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"最大值是:{max}。"); Console.WriteLine($"最小值是:{min}。"); Console.WriteLine($"平均值是:{avg}。"); Console.WriteLine($"總和是:{sum}。"); Console.WriteLine("顛倒後的順序是:"); foreach(var i in intList) { Console.WriteLine(i); } Console.ResetColor(); Console.ReadKey(); } }}

以上這段C#代碼中的聚合函數,其實在講解數組時已經使用過,使用方法是完全一樣的。

3. 運行結果

將上面的C#代碼運行一下,輸出的結果如下:

聚合函數運行結果-圖2

在圖2中,對於顛倒後的順序也輸出了,使用了foreach遍歷列表,從原列表中的數據從後向前全部輸出了。

相關焦點

  • Excel去掉一個最大值(最高分)和一個最小值(最低分)求平均值
    今天我們來介紹Excel計算數字單元格個數函數COUNT,並結合前面文章中介紹的函數MAX、MIN,來實現去掉一個最大值(最高分)和一個最小值(最低分)求平均值。2.去掉一個最大值(最高分)和一個最小值(最低分)求平均值如下面這個例子,公式可以寫為=(SUM(B2:B9)-MAX(B2:B9)-MIN(B2:B9))/(COUNT(B2:B9)-2),意思是(總和-最大值-最小值)/(總個數-2),結果如圖中所示。此方法雖直觀易懂,但列寫的公式比較繁瑣,後面我們會介紹更為簡單的方法。
  • 常用的幾個函數對比,求中數,求平均值,求名次,最大值,最小值
    朋友們好,我是涼涼老師,今天和大家聊幾個函數,求名次函數,不是RANK,而是另外幾個比較好用的分析函數,看圖:函數對比前三個函數並不陌生,第一個求取平均值,第二個求取最大值,第三個求取最小值,使用方法都是在函數裡面輸入或者選擇數據區域即可得出結果,最下方有視頻連結地址,第四個求倒數第二名的函數
  • 給Excel折線圖上添加最大值、最小值、平均值,讓圖表更直觀
    在日常工作中,為了讓表格數據更直觀,往往利用Excel的圖表功能生成圖表,如下圖中利用折線圖生成一個的銷售額。如果在上圖中標出上最大值、最小值和平均值,那圖表就更清晰直觀了。最大值和最小值可以直接在圖表上標註出來。平均值可以添加一條直線,哪些在平均值線下,哪些在線上,一目了然。
  • Excel第k個最大值函數LARGE和第k個最小值函數SMALL
    今天我們來介紹Excel第k個最大值函數LARGE和第k個最小值函數SMALL。1.第k個最大值函數LARGE函數格式為=LARGE(數組,K)【數組】為需要從中選擇第 k 個最大值的數組或數據區域。【K】為需要返回的第幾個最大值(從大到小)。
  • excel中如何利用TRIMMEAN計算修剪平均值?
    在excel中,trimmean函數應該算是小眾函數,因為計算平均值的方法太多了,最簡單的方式是選中有數據的單元格後excel表格的下方會自動顯示求和、計數、求平均值的結果,連函數都沒必要用。但是在數據統計中,可能要去掉最大值最小值後進行統計,或者去掉2個最大值和最小值統計,這時就用到了trimmean函數。trimmean函數有兩個參數,第一個參數表示選擇的數據區域,第二個參數表示修剪去除的比例。比如有20個數據,第二個參數是0.2,因為20*0.2=4,那麼就會去掉2個最大值和2個最小值後,對剩下的16個數求平均值。
  • 一道動態幾何中有關求線段最大值與最小值的差的題目解法歸納總結
    ∠ACP=90°,連接BC,則BC的最大值和最小值之差為________。【思路一】用「瓜豆原理」,通過主動點的運動軌跡分析出從動點的運動軌跡是解題的關鍵.以AB為斜邊,在AB上方作等腰直角三角形ABD,連接CD.證明△CAD∽△PAB,從而得到CD值,根據P點運動軌跡,分析出C點運動軌跡,分析出C、D兩點位置變化引起的BC最值,找到最大值和最小值即可解決問題.
  • Java 泛型 T,E,K,V,?,傻傻分不清?
    泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。 # 泛型帶來的好處 在沒有泛型的情況的下,通過對類型 Object 的引用來實現參數的「任意化」,「任意化」帶來的缺點是要做顯式的強制類型轉換,而這種轉換是要求開發者對實際參數類型可以預知的情況下進行的。
  • 高頻考點:什麼是泛型,泛型的使用場景
    2.使用泛型可以在傳參的時候(使用佔位符 ? 佔位)不固定傳入什麼類型,即可通用類型,如果不設置泛型的上限(例如:< ? extends List>)和下限(例如:<? super List>)。
  • Excel最大值最小值計算簡單,那第二、第三、第N大的值該怎麼求?
    在Excel中求一列數據中的最大值和最小值的操作方法很簡單,只需要兩個函數輕鬆搞定。MAX求單元格區域內數值的最大值,MIN求單元格區域內數值的最小值。
  • python入門第五課:數字列表的操作、列表切片與複製、元組的遍歷
    需要使用list()函數轉換一下才能形成列表,寫成這樣list(range(1,11)),見下面代碼:numbers = list(range(1,11))print(numbers)Range()函數可以指定步長,比如我們每個2位取一個值,可以寫成這樣
  • C#中,如何對Dictionary添加、獲取和移除數據?
    泛型字典基本概念C#中的Dictionary<TKey,TValue>是具有鍵值對的字典類型,是泛型類型,可以根據任意類型的鍵,獲取任意類型的值。可以將字典類型理解為:人本身和身份證號碼是綁定在一起的,知道了某個人的身份證號碼,就可以找到該人。
  • 快速介紹Python數據分析庫pandas的基礎知識和代碼示例
    為了能夠快速查找和使用功能,使我們在進行機器學習模型時能夠達到一定流程化。我創建了這個pandas函數的備忘單。這不是一個全面的列表,但包含了我在構建機器學習模型中最常用的函數。讓我們開始吧!假設我們想按性別將值分組,並計算物理和化學列的平均值和標準差。
  • Java泛型的約束與局限性
    :通過泛型數組包裝器,如ArrayList類,維護一個Object數組,然後通過進出口方法set、get來限定類型和強制轉換數組類型,從而間接實現泛型數組,例如:ArrayList: ArrayList<Pair<T>>、ArrayList<T>不能實例化類型變量T即不能使用new T(..)
  • 泛型棧和泛型隊列
    回顧數據容器變量無符號byte ushort uint ulong
  • 如何通俗易懂地理解什麼叫泛型?
    一、泛型的概念先回顧下集合和數組的區別:數組長度固定不變,可以存放任意數據類型,但存放的數據類型要一致。集合長度可變,可以存放任意引用數據類型,但存儲的數據類型可以不一致。④運行報錯,因為有一個其他數據類型的數據混進來了,編譯時期不能檢測到,運行時會出現類轉化異常。所以面對這種問題該怎麼辦呢?這種時候,就需要使用到泛型了。
  • 數據分析實踐入門(四):數據運算
    也可以把某一列或者某一行索引出來,單獨對這一列或這一行數據進行求和操作。3、mean求均值求均值是針對某一區域中的所有值進行求算術平均值運算。均值是用來衡量數據一般情況的指標,容易受到極大值、極小值的影響。
  • 學會這10個簡單又實用的統計函數,再也不怕數據計算了
    有了SUM函數在手,想求哪裡的和就求哪裡的和。如下圖所示,在單元格輸入sum函數,並引用E2到E8單元格區域,表示對E2到E8單元格的區域的數據進行求和統計。2.AVERAGER函數:求平均值如果需要進行平均值統計,這時就要使用AVERAGE函數了,使用方法如下圖所示,輸入函數後,進行單元格區域引用,就可以計算這片單元格區域中,數據的平均值了。3.COUNTA函數:統計非空單元格的個數如果要計算有多少個非空單元格,就需要用到COUNTA函數。