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

LINQ 環境下使 List 僅可插入不可刪除:封裝不暴露 List 實例

     編輯:程式設計綜合問答

在 LINQ / C# 環境下,若希望 List<int> 只允許插入、禁止刪除,核心原則是 **封裝**:**不對外暴露 List 實例**,僅提供 Add 方法。

實作模式

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

    public void Add(int value) => _inner.Add(value);

    // 僅暴露唯讀檢視
    public IEnumerable<int> AsEnumerable() => _inner.AsReadOnly(); // 或 _inner.ToArray()
    public int Count => _inner.Count;
    public int this[int index] => _inner[index]; // 可選:唯讀索引器
}

關鍵點

  • **私有欄位** _inner 不對外公開,外部無法呼叫 Remove、Clear 等方法。
  • 對外僅提供 Add、Count、索引器、IEnumerable<T> 等唯讀介面。
  • 若需傳遞給 API,回傳 _inner.AsReadOnly()(回傳 ReadOnlyCollection<T>)或 ToArray(),確保呼叫端無法修改原集合。

這是「最小權限原則」在集合封裝上的直接應用:不給刪除的機會,就不需要防禦刪除。

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