C# List Sort 질문 드려요


abc라는 클래스가 있습니다. 이건 클릭 지점의 좌표 정보를 가져오는 클래스 입니다.

List pts = new List();

해서 List에 담으면 정보는 아래와 같습니다.

alt text

각 X,Y의 좌표가 double 값으로 담기게 됩니다.

현재는 클릭한 순서대로 리스트에 담기게 됩니다.

클릭한 순서대로가 아닌

X좌표를 기준으로 리스트 순서를 바꾸고 싶은데 방법을 알려주시면 감사하겠습니다.

[ 1] [0] [5] [2] [3] [4] 순으로 순서를 바꾸고 싶습니다.

감사합니다. 좋은하루 되세요~


조회수 645


2 답변


linq를 사용하면 되지 않을까요?

var test = from n in pts
           orderby n.X ascending
           select n;



List의 Sort메소드를 이용하면 됩니다. 정렬 기준을 지정해 줄 수 있어요.

using System;
using System.Collections.Generic;

class Solution
{
    static void Main(string[] args)
    {
        ABC p1 = new ABC();
        ABC p2 = new ABC();
        ABC p3 = new ABC();
        p1.x = 10.5f;p1.y = 15f;
        p2.x = 80.5f;p2.y = 5.7f;
        p3.x = 2.5f;p3.y = 37f;

        List<ABC> list = new List<ABC>();
        list.Add(p1);
        list.Add(p2);
        list.Add(p3);

        //이렇게 소트하면 됩니다.
        //x값을 기준으로 판단하도록 sort에 명령하는 부분입니다.
        list.Sort( (a,b) => a.x>b.x?1:-1);

        foreach(ABC item in list){
            Console.WriteLine(item.x+", "+item.y);
        }

    }
}

class ABC
{
    public float x;
    public float y;
}
  • 2016년 06월 01일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 02월 04일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close