公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 中 List<T>?一種泛型集合列表使用指引

admin
2025年3月27日 0:34 本文熱度 418

概念和特點

在 C# 中,List<T> 是一種泛型集合,它提供了一組強大的方法來管理一組有序的對象。列表的特點包括:

  • 動態(tài)大小
    :與數(shù)組不同,列表的大小會根據(jù)需要動態(tài)增長或縮小。
  • 同類型元素
    :列表中只能包含一種類型的元素,這個類型在聲明時通過泛型參數(shù) T 指定。
  • 隨機訪問
    :列表支持通過索引快速訪問元素。
  • 靈活的操作
    :列表提供了豐富的方法,如添加、刪除、查找、排序等。

應(yīng)用場景

  • 數(shù)據(jù)集合管理
    :當(dāng)你需要一個可以動態(tài)調(diào)整大小的數(shù)據(jù)集合時,列表是一個理想的選擇。
  • 數(shù)據(jù)庫查詢結(jié)果
    :數(shù)據(jù)庫查詢通常返回可變大小的數(shù)據(jù)集,列表可以方便地存儲這些結(jié)果。
  • UI元素管理
    :在用戶界面編程中,列表可以用來管理動態(tài)的控件集合,如下拉菜單項。

方法與屬性

常用方法

  • Add(T item)
    :在列表的末尾添加一個元素。
  • AddRange(IEnumerable collection)
    :添加一個元素集合到列表的末尾。
  • Remove(T item)
    :移除列表中第一個匹配的元素。
  • RemoveAt(int index)
    :移除指定索引處的元素。
  • Clear()
    :移除列表中所有的元素。
  • Contains(T item)
    :判斷元素是否在列表中。
  • IndexOf(T item)
    :查找元素在列表中第一次出現(xiàn)的位置。
  • Sort()
    :對列表中的元素進(jìn)行排序。
  • Reverse()
    :反轉(zhuǎn)列表中的元素順序。
  • Find(Predicate match)
    :查找符合條件的第一個元素。
  • FindAll(Predicate match)
    :查找符合條件的所有元素。
  • ToArray()
    :將列表轉(zhuǎn)換為數(shù)組。
  • Insert(int index, T item)
    :在指定位置插入一個元素。
  • CopyTo(T[] array, int arrayIndex)
    :將列表中的元素復(fù)制到數(shù)組中。

常用屬性

  • Count
    :獲取列表中的元素個數(shù)。
  • Capacity
    :獲取或設(shè)置列表可以存儲的元素總數(shù)。
  • Item[int index]
    (索引器):獲取或設(shè)置指定索引處的元素。

示例

基本操作示例

// 創(chuàng)建一個整數(shù)列表
List<int> numbers = new List<int>();

// 添加元素
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);

// 移除元素
numbers.Remove(2);

// 遍歷列表
foreach (int number in numbers)
{
    Console.WriteLine(number);
}

// 輸出元素個數(shù)
Console.WriteLine("Count: " + numbers.Count);

列表初始化和范圍添加

// 使用集合初始化器初始化列表
List<string> fruits = new List<string> { "Apple""Banana""Cherry" };

// 添加另一個列表的元素
List<string> moreFruits = new List<string> { "Date""Elderberry" };
fruits.AddRange(moreFruits);

// 輸出所有水果
fruits.ForEach(fruit => Console.WriteLine(fruit));

查找和排序

// 創(chuàng)建并初始化一個整數(shù)列表
List<int> scores = new List<int> { 90858075100 };

// 查找分?jǐn)?shù)大于等于85的所有成績
List<int> highScores = scores.FindAll(score => score >= 85);

// 輸出高分
highScores.ForEach(score => Console.WriteLine("High score: " + score));

// 排序列表
scores.Sort();

// 輸出排序后的成績
scores.ForEach(score => Console.WriteLine("Score: " + score));

使用LINQ與列表

查找和搜索

List<int> numbers = new List<int> { 1357935 };

// 檢查元素是否存在
bool hasThree = numbers.Contains(3); // true
Console.WriteLine(hasThree);

// 查找元素索引
int firstIndex = numbers.IndexOf(5); // 2
Console.WriteLine(firstIndex);
int lastIndex = numbers.LastIndexOf(5); // 6
Console.WriteLine(lastIndex);

// 使用謂詞查找元素
int firstGreaterThanFour = numbers.Find(x => x > 4); // 5
Console.WriteLine(firstGreaterThanFour);
List<int> allGreaterThanFour = numbers.FindAll(x => x > 4); // [5, 7, 9, 5]
Console.WriteLine(allGreaterThanFour);

排序和反轉(zhuǎn)

List<string> names = new List<string> { "Zack""Alice""Bob""Charlie" };

// 排序
names.Sort(); // ["Alice", "Bob", "Charlie", "Zack"]
Console.WriteLine(string.Join(", ", names));

// 反轉(zhuǎn)
names.Reverse(); // ["Zack", "Charlie", "Bob", "Alice"]
Console.WriteLine(string.Join(", ", names));

// 自定義排序
names.Sort((a, b) => b.CompareTo(a)); // 降序排序
Console.WriteLine(string.Join(", ", names));

LINQ操作

List<int> numbers = new List<int> { 12345678910 };

// 篩選
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("偶數(shù):");
foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

// 轉(zhuǎn)換
var squared = numbers.Select(n => n * n).ToList();
Console.WriteLine("平方:");
foreach (var number in squared)
{
    Console.WriteLine(number);
}

// 聚合
var sum = numbers.Sum();
var average = numbers.Average();
var max = numbers.Max();
Console.WriteLine($"總和:{sum}");
Console.WriteLine($"平均值:{average}");
Console.WriteLine($"最大值:{max}");


實際應(yīng)用示例

學(xué)生成績管理

namespace AppList
{
    publicclass Student
    {

        publicstring Name { get; set; }
        publicint Score { get; set; }
    }
    internal class Program
    {

        static void Main(string[] args)
        
{
            // 創(chuàng)建學(xué)生列表
            List<Student> students = new List<Student>
            {
                new Student { Name = "Alice", Score = 95 },
                new Student { Name = "Bob", Score = 85 },
                new Student { Name = "Charlie", Score = 90 }
            };

            // 查找成績最高的學(xué)生
            var topStudent = students.OrderByDescending(s => s.Score).First();

            // 計算平均分
            var averageScore = students.Average(s => s.Score);

            // 找出及格的學(xué)生
            var passedStudents = students.FindAll(s => s.Score >= 60);

            Console.WriteLine($"最高分學(xué)生:{topStudent.Name},成績:{topStudent.Score}");
            Console.WriteLine($"平均分:{averageScore}");
            Console.WriteLine("及格學(xué)生:");
            foreach (var student in passedStudents)
            {
                Console.WriteLine($"{student.Name},成績:{student.Score}");
            }
        }
    }
}

購物車實現(xiàn)

namespace AppList
{
    publicclass CartItem
    {

        publicstring ProductName { get; set; }
        public decimal Price { get; set; }
        publicint Quantity { get; set; }
    }
    internal class Program
    {

        static void Main(string[] args)
        
{
            List<CartItem> cart = new List<CartItem>();

            // 添加商品到購物車
            cart.Add(new CartItem
            {
                ProductName = "iPhone",
                Price = 999.99m,
                Quantity = 1
            });

            // 計算總價
            decimal total = cart.Sum(item => item.Price * item.Quantity);

            // 查找特定商品
            var phone = cart.Find(item => item.ProductName.Contains("iPhone"));

            Console.WriteLine($"Total: {total}");
            Console.WriteLine($"Phone: {phone?.ProductName}");
        }
    }
}

性能考慮

  • 當(dāng)頻繁在列表開頭插入或刪除元素時,考慮使用LinkedList
  • 預(yù)知列表大小時,通過構(gòu)造函數(shù)指定初始容量可以提高性能
  • 大量隨機訪問操作時,List比其他集合類型更高效
  • 需要唯一元素時,考慮使用HashSet

總結(jié)

List是C#中最常用的集合類型之一,它提供了強大的功能和靈活的操作方式。通過合理使用其提供的方法,可以高效地管理和操作數(shù)據(jù)。在實際開發(fā)中,根據(jù)具體需求選擇合適的操作方法,可以顯著提高代碼的效率和可維護(hù)性。

這篇文章涵蓋了List的主要特性和用法,包含了豐富的示例代碼和實際應(yīng)用場景。每個示例都附帶了詳細(xì)的注釋,便于理解。


閱讀原文:原文鏈接


該文章在 2025/3/27 13:27:21 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产极品粉嫩馒头一线天 | 91精品在线免费视频 | 国产精品无码av网站 | 丰满人妻熟妇av无码区a | 精品国产自在观看久久 | 国产成人无码区在线观看流畅 | 国产一区二区在线观看动漫 | 国产精品国产三级国产专播 | av天堂午夜精品一区二区三区 | 91精品国产一区二区三区左线 | 国产精品露脸视频 | 国产精品激情丝袜美女 | 精品一区二区av资源在线 | 91无码人妻一区二区三区在线看 | 激情刺激欧美一区二区三区 | 18禁黄无码免费网站高潮 | 国产一区二区在线观看美浪 | 成人在线观看丁香 | 91精产国品一二三区在线 | a级国产免费黄片 | 国产精品亚洲第五区在线 | 97人妻在线播放 | 国产高清女同学巨大乳在线 | 国产97视频在线观看免费 | 高清少妇熟女一区二区 | 精品亚洲v乱码一区二区 | 国产成人精品午夜精品 | 国产成人啪精品视 | 91麻豆国产香蕉久久精品 | 91在线视频播放 | 成年夜99九九久久夜观欧美 | 国产福利精品在线 | 按摩师玩弄到潮喷在线播放 | 国产精品国产三级国产aⅴ9色 | 国产一区二区三区亚洲精品 | 国产av旡码专区亚洲av | 高潮喷水波多野结衣在线观看 | 成人无码精品一区二区三区亚洲区 | 国产三级小视频在线观看 | 99精品人妻少 | 国产在线观看激情 |