在 C# 中,List<T>
是一种泛型集合,它提供了一组强大的方法来管理一组有序的对象。列表的特点包括:
T
指定。Add(T item)
:在列表的末尾添加一个元素。AddRange(IEnumerable<T> collection)
:添加一个元素集合到列表的末尾。Remove(T item)
:移除列表中第一个匹配的元素。RemoveAt(int index)
:移除指定索引处的元素。Clear()
:移除列表中所有的元素。Contains(T item)
:判断元素是否在列表中。IndexOf(T item)
:查找元素在列表中第一次出现的位置。Sort()
:对列表中的元素进行排序。Reverse()
:反转列表中的元素顺序。Find(Predicate<T> match)
:查找符合条件的第一个元素。FindAll(Predicate<T> match)
:查找符合条件的所有元素。ToArray()
:将列表转换为数组。Insert(int index, T item)
:在指定位置插入一个元素。CopyTo(T[] array, int arrayIndex)
:将列表中的元素复制到数组中。Count
:获取列表中的元素个数。Capacity
:获取或设置列表可以存储的元素总数。Item[int index]
(索引器):获取或设置指定索引处的元素。C#// 创建一个整数列表
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);
C#// 使用集合初始化器初始化列表
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));
C#// 创建并初始化一个整数列表
List<int> scores = new List<int> { 90, 85, 80, 75, 100 };
// 查找分数大于等于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));
C#List<int> numbers = new List<int> { 1, 3, 5, 7, 9, 3, 5 };
// 检查元素是否存在
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);
C#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));
C#List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 筛选
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}");
C#namespace AppList
{
public class Student
{
public string Name { get; set; }
public int 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}");
}
}
}
}
C#namespace AppList
{
public class CartItem
{
public string ProductName { get; set; }
public decimal Price { get; set; }
public int 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}");
}
}
}
List是C#中最常用的集合类型之一,它提供了强大的功能和灵活的操作方式。通过合理使用其提供的方法,可以高效地管理和操作数据。在实际开发中,根据具体需求选择合适的操作方法,可以显著提高代码的效率和可维护性。
这篇文章涵盖了List的主要特性和用法,包含了丰富的示例代码和实际应用场景。每个示例都附带了详细的注释,便于理解。如果您需要了解某个特定部分的更多细节,请随时告诉我。
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!