最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】C#中如何实现动态字符串数组

C# crifan 5442浏览 0评论

【问题】

C#中想要实现动态的字符串数组。

【解决过程】

1。网上找了一堆资料:

c#字符串及数组操作

一维数组(C# 编程指南)

结果都是申请固定的大小的字符串的数组,而非动态的。

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 泛型类

可以看出,其实是用

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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 泛型List
    Joe12年前 (2012-09-24)回复
85 queries in 0.199 seconds, using 22.11MB memory