c#中具有动态大小的字符串数组

本文关键字:字符串 数组 动态 | 更新日期: 2023-09-27 18:01:40

public string[,] SqlcodeDeclarations { get; set; }

如何实现"字符串数组"与动态大小不包括泛型列表。

c#中具有动态大小的字符串数组

你可以创建一个非常简单的类,它可以让你模拟一个动态数组,而不暴露它的添加/删除方法等(你可以控制你暴露的方法)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            DynamicArray<int> intArray = new DynamicArray<int>(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
            foreach (var number in intArray)
            {
                Console.WriteLine(number.ToString());
            }
            Console.WriteLine("The Second Element is: " + intArray[1].ToString());
            intArray[1] = 6;
            Console.WriteLine("Changed to 6: " + intArray[1].ToString());
            Console.WriteLine("Press any key...");
            Console.ReadKey(true);
        }
    }
    public class DynamicArray<T> : IEnumerable<T> where T: struct
    {
        private List<T> _items = new List<T>();
        public DynamicArray(params T[] items)
        {
            _items.AddRange(items);
        }
        public T this[int index]
        {
            get { return _items[index]; }
            set { _items[index] = value; }
        }
        public int Count { get { return _items.Count; } }
        public void AddNew(T item)
        {
            _items.Add(item);
        }
        public void RemoveAt(int index)
        {
            _items.RemoveAt(index);
        }
        public void Remove(T item)
        {
            _items.Remove(item);
        }
        public IEnumerator<T> GetEnumerator()
        {
            return _items.GetEnumerator();
        }
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return _items.GetEnumerator();
        }
    }
}