C#에서 개체의 속성별로 목록을 정렬하는 방법

  1. OrderBy 메서드를 사용하여 C#의 개체에서 속성별로 목록 정렬
  2. 대리인을 사용하여 C#에서 개체의 속성별로 목록 정렬

이 문서에서는 C# 코드를 사용하여 개체의 속성별로 목록을 정렬하는 다양한 방법을 소개합니다.

  • OrderBy 방법 사용
  • 델리게이트 사용

OrderBy 메서드를 사용하여 C#의 개체에서 속성별로 목록 정렬

기본 제공 함수 OrderBy를 사용하여 목록을 정렬합니다. 객체의 속성에 의해. LINQ의 방법입니다. 이 메서드는 지정된 속성별로 정렬 된 새 목록을 만듭니다. 속성별로 목록을 정렬하는 데이 방법을 사용하는 올바른 구문은 다음과 같습니다.

ListName.Orderby(varName => varName.property);

내장 함수 OrderBy에는 두 개의 매개 변수가 있습니다. 매개 변수의 세부 사항은 다음과 같습니다.

매개 변수 기술
varName 필수 주어진 목록의 변수 이름입니다.
property 필수 목록을 정렬하는 데 사용할 속성입니다.

아래 프로그램은이 함수를 사용하여 객체의 속성별로 목록을 정렬하는 방법을 보여줍니다.

using System;
using System.Linq;
using System.Collections.Generic;

public class Flowers
{
    public string name;
    public int priority;

    public Flowers(string name, int priority) {
        this.name = name;
        this.priority = priority;
    }

    public override string ToString()
    {
        return "[" + name + "," + priority + "]";
    }
}

public class Example
{
    public static void Main()
    {
        Flowers hibiscus = new Flowers("Hibiscus", 3);
        Flowers rose = new Flowers("Rose", 1);
        Flowers lili = new Flowers("Lili", 4);

        List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };

        List<Flowers> sorted = mylist.OrderBy(x => x.priority).ToList();
        Console.WriteLine(String.Join(Environment.NewLine, sorted));
    }
}

산출:

[Rose,1]
[Hibiscus,3]
[Lili,4]

대리인을 사용하여 C#에서 개체의 속성별로 목록 정렬

사용자 지정 대리자를 사용하여 개체의 속성별로 목록을 정렬 할 수도 있습니다. delegate를 사용하는 올바른 구문은 다음과 같습니다.

[access modifier] delegate [return type] [delegate name]([parameters])

아래 프로그램은 델리게이트를 사용하여 객체의 속성별로 목록을 정렬하는 방법을 보여줍니다.

using System;
using System.Linq;
using System.Collections.Generic;

public class Flowers
{
    public string name;
    public int priority;

    public Flowers(string name, int priority) {
        this.name = name;
        this.priority = priority;
    }

    public override string ToString()
    {
        return "[" + name + "," + priority + "]";
    }
}

public class Example
{
    public static void Main()
    {
        Flowers hibiscus = new Flowers("Hibiscus", 3);
        Flowers rose = new Flowers("Rose", 1);
        Flowers lili = new Flowers("Lili", 4);

        List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };

    mylist.Sort(delegate(Flowers x, Flowers y) {
            return x.priority.CompareTo(y.priority);
        });

        Console.WriteLine(String.Join(Environment.NewLine, mylist));
    }
}

산출:

[Rose,1]
[Hibiscus,3]
[Lili,4]

관련 문장 - Csharp Method

  • C# 함수에서 메서드를 매개 변수로 전달하는 방법
  • 관련 문장 - Csharp Parameter

  • C# 함수에서 메서드를 매개 변수로 전달하는 방법