【问题】
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#中如何实现动态字符串数组