首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

LINQ 建立固定容量 0-10 元素的 List:自訂 LimitedList 封裝

     編輯:程式設計綜合問答

需求:建立一個最多容納 10 個元素的 List<int>,超過容量拒絕新增。標準 List<T> 無容量上限屬性(Capacity 僅影響內部陣列大小,不限制 Count),需自行封裝。

實作範例

public class LimitedList {
    private readonly List<int> _inner = new List<int>();
    private readonly int _maxSize;

    public LimitedList(int maxSize = 10) => _maxSize = maxSize;

    public void Add(int value) {
        if (_inner.Count < _maxSize) _inner.Add(value);
        // 可選:超過容量拋出異常或忽略
    }

    public IEnumerable<int> AsEnumerable() => _inner.AsReadOnly();
    public int Count => _inner.Count;
    public int this[int index] => _inner[index];
}

使用方式

var list = new LimitedList(10);
for (int i = 0; i < 15; i++) list.Add(i); // 只保留 0~9
Console.WriteLine(list.Count); // 10

擴展建議

  • 實作 ICollection<T>、IList<T> 介面以相容標準 API(Add 滿時拋 InvalidOperationException)。
  • 提供 Insert、RemoveAt 等方法同樣檢查容量/邊界。
  • 若需執行緒安全,加 lock 或使用 ConcurrentQueue 配合 BoundedCapacity(.NET 6+)。

自訂集合類別是掌控資料結構行為的最直接方式,避免在業務程式碼中散落邊界檢查邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved