欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

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

概念和特點

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

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

應用場景

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

方法與屬性

常用方法

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

常用屬性

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

示例

基本操作示例

// 創建一個整數列表
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);
}

// 輸出元素個數
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));

查找和排序

// 創建并初始化一個整數列表
List<int> scores = new List<int> { 90858075100 };

// 查找分數大于等于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);

排序和反轉

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

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

// 反轉
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("偶數:");
foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

// 轉換
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}");


實際應用示例

學生成績管理

namespace AppList
{
    publicclass Student
    {

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

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

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

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

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

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

購物車實現

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}");
        }
    }
}

性能考慮

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

總結

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

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


閱讀原文:原文鏈接


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