---
title: "Ärva från list och lägga till sort metod"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/174018-ärva-från-list-och-lägga-till-sort-metod"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Addeladde"
published: "2008-09-13T10:23:05.000Z"
updated: "2008-09-13T11:21:15.000Z"
replies: 5
views: 487
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/174018-ärva-från-list-och-lägga-till-sort-metod"
---

# Ärva från list och lägga till sort metod

## #1 — Addeladde, 2008-09-13T10:23Z

Hej

Jag tänkte försöka underlätta lite för mig när jag programmerar. Sorterar ofta listor och istället för att skriva så här:

```
        adUsers.Sort(delegate(ADUser p1, ADUser p2) { return p1.DisplayName.CompareTo(p2.DisplayName); });
```

Så tänkte jag bygga en egen method för det. men jag har inte fått den att sortera rätt.

```
[Serializable]
[DebuggerDisplay("Count = {Count}")]
public class GenericCollection<GENERICTYPE> : List<GENERICTYPE>
{
public void Sort(string sortExpression)
    {
        this.Sort(delegate(GENERICTYPE p1, GENERICTYPE p2) { return p1.GetType().GetProperty(sortExpression).GetValue(this[], null).ToString().CompareTo(p1.GetType().GetProperty(sortExpression).GetValue(this[0], null).ToString()); });
    }
}
```

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

## #2 — Nickemannen, 2008-09-13T10:31Z

DynamicComparer:
<http://www.codeproject.com/KB/dotnet/dynamiclistsorting.aspx>

Ärv av Collection\<\> istället för List\<\>.

```
public class EntityRepository<TEntity> : Collection<TEntity>
{
    public SortByPropertyName(string propertyName)
    {
        DynamicComparer comparer = new DynamicComparer<TEntity>(propertyName);
        (this.InnerList as List<TEntity>).Sort(comparer);
    }
}
```

OBS skrev koden rakt av, finns säkert något kompileringsfel.

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

## #3 — Addeladde, 2008-09-13T10:58Z

Varför ska jag ärva från Collection? Då finns ju inte metoderna för sort med?

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

## #4 — Addeladde, 2008-09-13T11:10Z

```
 public void Sort(string sortExpression)
    {
        DynamicComparer.DynamicComparer<GENERICTYPE> comparer = new DynamicComparer.DynamicComparer<GENERICTYPE>(sortExpression);
        this.Sort(comparer.Compare);
    }
```

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

## #5 — Nickemannen, 2008-09-13T11:20Z

> **Addeladde skrev:**
>
> Varför ska jag ärva från Collection? Då finns ju inte metoderna för sort med?

Ärver du av collection får du möjligheterna att ta override på InserItem, RemoveItem och SetItem. Samt att kör man code analysis så rekommenderar den att man skall ärva av Collection\<\> istället.

Collection i sin tur innehåller en InnerList som är en List\<\> som man tar sort på.
Så som jag gjorde så castade jag den i detta fallet.

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

## #6 — Addeladde, 2008-09-13T11:21Z

okej tack

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/174018-ärva-från-list-och-lägga-till-sort-metod
