【问题】
C#中想要实现动态的字符串数组。
【解决过程】
1。网上找了一堆资料:
结果都是申请固定的大小的字符串的数组,而非动态的。
2.后来参考:
C# 没有动态的数组,可以用arraylist或list取代
去实现代码:
using System.Collections;
ArrayList songIdList = new ArrayList();
songIdList.Add("12345");
songIdList.Add("23456");
string id0 = songIdList[0].ToString();
string id1 = songIdList[1].ToString();就可以实现字符串数组的操作了。
【总结】
的确是,C#中没有默认支持动态的字符串数组,需要通过其他方式。
此处是通过ArrayList实现的。
示例代码参见上面。
【后记】
根据Joe的评论,去专门查了下:
可以看出,其实是用
List<string>
是更好的做法。
此处,暂且不去自己折腾了,需要的,参考官网代码吧:
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<string> dinosaurs = new List<string>();
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
dinosaurs.Contains("Deinonychus"));
Console.WriteLine("\nInsert(2, \"Compsognathus\")");
dinosaurs.Insert(2, "Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);
Console.WriteLine("\nRemove(\"Compsognathus\")");
dinosaurs.Remove("Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
dinosaurs.TrimExcess();
Console.WriteLine("\nTrimExcess()");
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
dinosaurs.Clear();
Console.WriteLine("\nClear()");
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
}
}转载请注明:在路上 » 【已解决】C#中如何实现动态字符串数组