C# How to create a List of objects with read only properties by passing in a list of similar objects via constructor
<p>My class is defined as follows. Without going too much into detail I don't want anyone to be able to alter this instantiated object, or the object that is passed in to this classes constructor.</p>

<pre><code>public class ItemDeliveryInfo
{
    public ItemDeliveryAudit ItemDeliveryAudit
    {
        get
        {
            return this._itemDeliveryAudit;
        }
    }
    public int ItemDeliveryAuditId
    {
        get
        {
            return this.ItemDeliveryAudit.ItemDeliveryAuditId;
        }
    }
    public int? DeliveryDriverId
    {
        get
        {
            return this.ItemDeliveryAudit.DeliveryDriverId;
        }
    }
    public int DeliveryId
    {
        get
        {
            return this.ItemDeliveryAudit.DeliveryId;
        }
    }
    public int StoreId
    {
        get
        {
            return this.ItemDeliveryAudit.StoreId;
        }
    }

    private ItemDeliveryAudit _itemDeliveryAudit;
    private bool _isItemLate;
    private bool _isItemOnTime;

    internal ItemDeliveryInfo(ItemDeliveryAudit itemDeliveryAudit, bool itemLate, bool itemOnTime)
    {
        this._itemDeliveryAudit = drAssignedAudit;
        this._isItemLate = itemLate;
        this._isItemOnTime = itemOnTime;
    }
    public bool IsItemLate()
    {
        return this._isItemLate;
    }

    public bool IsItemOnTime()
    {
        return this._isItemOnTime;
    }
}
</code></pre>

<p>Currently the constructor works for creating a singular ItemDeliveryInfo object and successfully returns the object I want...</p>

<pre><code> ItemDeliveryInfo infoObject = new ItemDeliveryInfo(itemAudit, true, false);
</code></pre>

<p>However, I cannot wrap my head around having a constructor that would be executed as follows...</p>

<pre><code>List&lt;ItemDeliveryAudits&gt; itemDeliveryAudits = // code to populate list to pass to the ctor;
List&lt;ItemDeliveryInfo&gt; itemDeliveryInfos = new ItemDeliveryInfo(itemDeliveryAudits, true, false);
</code></pre>

<p>I'm assuming that I will have to create another overloaded constructor to handle this, but I am just at a loss for how to accomplish this. Any help or guidance would be greatly appreciated.</p>