CHashtag

[C#] List 원하는 개수만 얻기 (Take, Skip) 본문

C#

[C#] List 원하는 개수만 얻기 (Take, Skip)

HyoSeong 2022. 1. 7. 17:54
반응형

안녕하세요.

 

오늘은 List에서 원하는 개수만 얻는 방법에 대해 알아보도록 하겠습니다.

 

static void Main(string[] args)
{
    List<string> items = new List<string>();

    // 테스트용 string을 넣어줍니다.
    for(int i=0;i<10;i++)
    {
        items.Add(i + " Item Added");
    }

    List<string> orderedItems = items.OrderBy(x => x).Skip(5).Take(3).ToList();

    orderedItems.ForEach(x => Console.WriteLine(x));
    // output
    // 5 Item Added
    // 6 Item Added
    // 7 Item Added
}

 

 

Take(int count)


Take 함수는 Enumerable에 속해있는 함수로, Enumerable에서 0~count까지의 index의 객체를 반환합니다.

(만약 count가 list.Count보다 크다면 list를 반환합니다.(에러가 나지 않습니다.))

 

따라서 원하는 데이터를 얻기 위해 정렬을 해 주어야 할 필요가 있습니다.

 

Return값은 List가 아닌 IEnumerable이기 때문에 ToList()를 해 주어야 List에 대입이 가능합니다.

 

List<string> orderedItems = items.OrderBy(x => x).Take(5).ToList();
// output
// 0 Item Added
// 1 Item Added
// 2 Item Added
// 3 Item Added
// 4 Item Added

 

Skip(int count)


Skip 함수 또한 Enumerable에 속해있는 함수로, Enumerable에서 0~count까지의 index의 건너뛰고 남은 객체를 반환합니다.

(만약 count가 list.Count보다 크다면 빈 IEnumerable를 반환합니다.(에러가 나지 않습니다.))

 

 

Return값은 List가 아닌 IEnumerable이기 때문에 ToList()를 해 주어야 List에 대입이 가능합니다.

 

 

List<string> orderedItems = items.OrderBy(x => x).Skip(5).ToList();
// output
// 5 Item Added
// 6 Item Added
// 7 Item Added
// 8 Item Added
// 9 Item Added

 

 

감사합니다.

반응형