---
title: "Byta ut en ArrayList mot IList"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/168277-byta-ut-en-arraylist-mot-ilist"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "CatZ"
published: "2008-01-21T10:43:11.000Z"
updated: "2008-01-21T11:58:54.000Z"
replies: 5
views: 735
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/168277-byta-ut-en-arraylist-mot-ilist"
---

# Byta ut en ArrayList mot IList

## #1 — CatZ, 2008-01-21T10:43Z

Jag vill byta ut 

```
public class Item
{
  string _name;
  ArrayList _subItems = new ArrayList();

  public Item(string name) { _name = name; }

  public string    Name     { get { return _name;     } }
  public ArrayList SubItems { get { return _subItems; } }
}
```

 mot en IList istället 

```
public class Item
{
	string _name;
	IList<Item> _subItems = new IList<Item>();

	public Item(string name) { _name = name; }

	public string Name { get { return _name; } }
	public IList<Item> SubItems { get { return _subItems; } }
}
```

 men får ett meddelande om att 

> **Visual Studio skrev:**
>
> Cannot create an instance of the abstract class or interface 'System.Collections.Generic.IList\<Entities.Item\>'

Vad gör jag för fel?

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

## #2 — Compusa, 2008-01-21T10:56Z

Du kan inte skapa en instans av ett interface.

Detta fungerar:

```
IList<Item> _subItems = new [3][B]List[/B][/3]<Item>();
```

Att du har IList på vänster sidan och inte på högersidan beror på att man bör sträva efter att programmera mot ett interface/abstraktion. Gör du det så kan du helt enkelt byta ut List mot en annan konkret klass som implementerar IList utan att behöva göra några ändringar i koden som jobbar mot interfacet. Exempelvis så skulle du kunna göra så här:

```
IList<Item> _subItems = new [3][B]MyOwnImplementationOfIList[/B][/3]<Item>();
```

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

## #3 — CatZ, 2008-01-21T10:58Z

gaaah ibland tittar man för länge på samma rad och blir blind!

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

## #4 — Compusa, 2008-01-21T11:01Z

> **CatZ skrev:**
>
> gaaah ibland tittar man för länge på samma rad och blir blind!

Ok då är nog min förklaring överflödig.

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

## #5 — CatZ, 2008-01-21T11:05Z

> **Compusa skrev:**
>
> Ok då är nog min förklaring överflödig.

Nej inte alls! Det hjälper ju alla som snubblar över tråden! ;)

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

## #6 — Compusa, 2008-01-21T11:58Z

Sant :)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/168277-byta-ut-en-arraylist-mot-ilist
