---
title: "ReadOnlyCollection<Order> eller List<Order>?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/175369-readonlycollection-order-eller-list-order"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Lukaspojken"
published: "2008-11-17T15:22:40.000Z"
updated: "2008-11-17T16:15:16.000Z"
replies: 2
views: 419
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/175369-readonlycollection-order-eller-list-order"
---

# ReadOnlyCollection<Order> eller List<Order>?

## #1 — Lukaspojken, 2008-11-17T15:22Z

Nedan är två alternativ på hur ett kundobjekt kan se ut. Vilket av alternativen föredrar du och varför?

**Alternativ 1**

```
public class Customer
{
        private List<Order> _orders = new List<Order>();

        ...

        public ReadOnlyCollection<Order> Orders 
        { 
	get { return _orders.AsReadOnly(); } 
        }

        public AddOrder(Order order)
        {
	_orders.Add(order);
        }
}
```

I alternativ 1 kan enbart en ny order läggas till via metoden AddOrder.

**Alternativ 2**

```
public class Customer
{
        private List<Order> _orders = new List<Order>();

        ...

        public List<Order> Orders
        {
        	get { return orders; }
	set { orders = value; }
        }
}
```

I alternativ 2 så kan man lägga till en ny order via följande kodrad:
customer.Orders.Add(order)

Vilket alternativ är att föredra enligt dig och varför?

Permalänk: https://www.webforum.nu/p/175369

## #2 — Compusa, 2008-11-17T15:32Z

Det var nyligen en tråd aktiv, där exponering av listor diskuterades:
<http://www.webforum.nu/showthread.php?t=170843>

Permalänk: https://www.webforum.nu/p/2153545

## #3 — Lukaspojken, 2008-11-17T16:15Z

Tack för länken! Den diskussionen hade jag missat helt...

Den artikel som nämns i diskussion är bra:
<http://dotnetslackers.com/articles/net/List-and-Object-oriented-Design-Principles.aspx>

Nedanstående text i artikeln sammanfattar det ganska bra:
"... Cwalina recommends that you avoid List\<T\> in public APIs. What is the alternative? You should use a simpler list-based type such as Collection\<T\> or ReadOnlyCollection\<T\> for outputs and class properties. You should go for IEnumerable\<T\>, ICollection\<T\>, IList\<T\> for input parameters.

When you return an object from a method, you should return the simplest possible object that works in the scenario."

Permalänk: https://www.webforum.nu/p/2153547

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/175369-readonlycollection-order-eller-list-order
