C# List Sort 질문 드려요

조회수 8887회

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

List pts = new List();

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

alt text

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

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

클릭한 순서대로가 아닌

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

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

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;
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)