C# 字符串数组list
时间: 2025-03-27 11:38:18 浏览: 35
### C# 中使用字符串数组 `List` 示例及教程
#### 创建并初始化字符串列表
在 C# 中,可以通过泛型类 `List<T>` 来创建一个可变大小的字符串数组。下面是一个简单的例子来展示如何声明、初始化以及操作这样的列表:
```csharp
using System;
using System.Collections.Generic;
class Program {
static void Main() {
// 初始化一个新的字符串列表
List<string> fruits = new List<string>();
// 向列表中添加元素
fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");
Console.WriteLine("原始水果列表:");
foreach (var fruit in fruits) {
Console.WriteLine(fruit);
}
}
}
```
此代码片段展示了如何定义一个名为 `fruits` 的空字符串列表,并向其中添加三个不同的项[^1]。
#### 访问和修改列表中的项目
一旦有了填充好的列表,就可以通过索引来访问特定位置上的值或对其进行更改:
```csharp
// 获取第一个项目的副本(不会影响原列表)
string firstFruit = fruits[0];
// 修改第二个项目的内容
if (fruits.Count > 1) {
fruits[1] = "Blueberry";
}
Console.WriteLine($"\n更新后的第二项: {fruits[1]}");
```
这段程序说明了怎样读取和改变现有条目而不必重新分配整个结构[^3]。
#### 连接多个字符串形成单个字符串
当需要将一系列独立的字符串组合起来时,可以利用 `String.Join()` 函数轻松完成这一任务。这不仅简化了编码过程还提高了性能效率:
```csharp
// 将所有水果名称连接成由逗号分隔的一串文字
string joinedFruits = String.Join(", ", fruits);
Console.WriteLine($"\n拼接后的字符串: {joinedFruits}");
```
上述方法能够有效地把各个成员按照指定模式串联在一起。
#### 查找公共前缀
对于给定的一个字符串数组,如果想要找到它们之间的最长共同起始部分,则可通过编写自定义逻辑实现这一点:
```csharp
static string LongestCommonPrefix(List<string> strs) {
if (!strs.Any()) return "";
var prefix = strs.First();
while(strs.Exists(s => !s.StartsWith(prefix))) {
prefix = prefix.Substring(0, prefix.Length - 1);
if(string.IsNullOrEmpty(prefix)) break;
}
return prefix;
}
// 测试查找功能
List<string> words = new List<string>() {"flower","flow","flight"};
string commonPrefix = LongestCommonPrefix(words);
Console.WriteLine($"\n这些单词的最大共有开头是 '{commonPrefix}'");
```
这里实现了寻找一组词之间最大长度相同首字母序列的功能[^2]。
#### 动态调整列表容量
有时可能事先不知道最终会有多少数据要存储,在这种情况下可以让 `List<>` 自动管理内部缓冲区的增长情况;当然也可以手动设置初始容量以优化内存占用率:
```csharp
// 设置预估数量级
int estimatedSize = 50;
List<string> dynamicStrings = new List<string>(estimatedSize);
dynamicStrings.Insert(2, "Compsognathus"); // 插入新元素到第三位之前的位置上
Console.WriteLine("\nInsert(2, \"Compsognathus\")");
foreach(var item in dynamicStrings){
Console.WriteLine(item);
}
```
以上示例介绍了如何预先设定预期规模从而更好地控制资源消耗。
阅读全文
相关推荐
















