超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

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

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

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

概念和特點(diǎn)

在 C# 中,List<T> 是一種泛型集合,它提供了一組強(qiáng)大的方法來(lái)管理一組有序的對(duì)象。列表的特點(diǎn)包括:

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

應(yīng)用場(chǎng)景

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

方法與屬性

常用方法

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

常用屬性

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

示例

基本操作示例

// 創(chuàng)建一個(gè)整數(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);
}

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

列表初始化和范圍添加

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

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

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

查找和排序

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

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

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

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

// 輸出排序后的成績(jī)
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}");


實(shí)際應(yīng)用示例

學(xué)生成績(jī)管理

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

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

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

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

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

購(gòu)物車(chē)實(shí)現(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>();

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

            // 計(jì)算總價(jià)
            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)頻繁在列表開(kāi)頭插入或刪除元素時(shí),考慮使用LinkedList
  • 預(yù)知列表大小時(shí),通過(guò)構(gòu)造函數(shù)指定初始容量可以提高性能
  • 大量隨機(jī)訪(fǎng)問(wèn)操作時(shí),List比其他集合類(lèi)型更高效
  • 需要唯一元素時(shí),考慮使用HashSet

總結(jié)

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

這篇文章涵蓋了List的主要特性和用法,包含了豐富的示例代碼和實(shí)際應(yīng)用場(chǎng)景。每個(gè)示例都附帶了詳細(xì)的注釋?zhuān)阌诶斫狻?/t>


閱讀原文:原文鏈接


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