Microsoft MVP성태의 닷넷 이야기
글쓴 사람
spowner (spowner at naver.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            // 등록된 범위는 중복되지 않다고 가정
            var list = new List<Item>
            {
                new Item { Min = 0, Max = 1000, Rate = 0.9d },
                new Item { Min = 1001, Max = 2000, Rate = 1.1d },
                new Item { Min = 2001, Max = 3000, Rate = 1.2d },
                new Item { Min = 3001, Max = 4000, Rate = 1.2d },
                new Item { Min = 4001, Max = 5000, Rate = 1.0d }
            };

            // 목록은 항상 정렬되었다고 가정
            list.Sort((x, y) =>
            {
                return x.Max.CompareTo(y.Min);
            });

            // 목록 출력
            foreach (var i in list)
            {
                Console.WriteLine(i);
            }

            Console.WriteLine();

            // 정렬되어 있으므로 이진검색 가능
            var value = 4500;
            var item = new Item(value);
            var index = list.BinarySearch(item, item);

            var rate = list[index].Rate;

            Console.WriteLine($"{value} => {rate}");
        }
    }

    public class Item : IComparer<Item>
    {
        public double Min { get; set; }
        public double Max { get; set; }
        public double Rate { get; set; }

        public Item()
        {
        }

        public Item(double value)
        {
            Max = value;
        }

        public override string ToString()
        {
            return $"{Min} ~ {Max} : {Rate}";
        }

        public int Compare(Item x, Item y)
        {
            var value = y.Max;

            if (value >= x.Min && value <= x.Max)
                return 0;
            else if (value < x.Min)
                return 1;
            else // else if (x.Max > value)
                return -1;
        }
    }
}








[최초 등록일: ]
[최종 수정일: 2/7/2017]


비밀번호

댓글 작성자
 




... 91  92  [93]  94  95  96  97 
NoWriterDateCnt.TitleFile(s)
132정성태4/1/200511379            답변글 [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
133김용국4/1/200511562                답변글 [답변]: [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
126구정모3/31/200512862이홈의 효과는 어떻게???
128정성태3/31/200512003    답변글 [답변]: 이홈의 효과는 어떻게???
124배재현3/30/200511713Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
125정성태3/30/200511493    답변글 [답변]: Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
121안연준3/23/200511242이벤트 관련 문제
122정성태3/23/200511135    답변글 [답변]: 이벤트 관련 문제
120안연준3/23/200511094정성태님.... 오프라인 문제 질문 입니다. [1]
123정성태3/23/200511296    답변글 [답변]: 정성태님.... 오프라인 문제 질문 입니다. [1]
117정준명3/21/200512136COM+ 메소드 작성시...
118정성태3/29/200511777    답변글 [답변]: COM+ 메소드 작성시... [1]
109김용국3/18/200512697IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
112정성태3/19/200511821    답변글 [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
113김용국3/19/200511815        답변글 [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
114정성태3/19/200511763            답변글 [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
115김용국3/21/200511232                답변글 [답변]: [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ... [1]
119김용국3/22/200511248                    답변글 [답변]: 정상태님 아주 잘 해결 되었습니다.... 감사합니다!
108guest3/17/200511386닷넷 프레임워크 배포
111정성태3/19/200511856    답변글 [답변]: 닷넷 프레임워크 배포
107안연준3/17/200511074[-_-]스마트 클라이언트에 관련 된 질문[-_-]
110정성태3/19/200511955    답변글 [답변]: [-_-]스마트 클라이언트에 관련 된 질문[-_-]
116안연준3/21/200511377        답변글 [답변]: 친절한 답변 고맙습니다.
98김용국3/18/200513257정성태님... 연결이 준비됬습니다
99정성태3/2/200514303    답변글 [답변]: 정성태님... 연결이 준비됬습니다
100김용국3/18/200511281        답변글 [답변]: 죄송합니다! 급히올리느라 file path의 변경을 하지않고 그냥올렸네요....!
... 91  92  [93]  94  95  96  97