본문 바로가기

C#

LINQ_to_Objects의_기초

반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LINQ_to_Objects의_기초
{
    class Program
    {
        static void Main(string[] args)
        {
            var names = new List<string> { "Seoul", "New Delhi", "Bangkok", "London", "Paris", "Berlin","Canberra","Hong Kong" };
            
            IEnumerable<string> Query = names.Where(s => s.Length <= 5);
            
            foreach (var item in Query)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("=================================");

            //배열 , List<T>, Dictionary<Tkey,Tvalue> -> IEnumerable<T> 인터페이스를 구현하고 있는 형이면
            //Where메서드를 해당 객체를 대상으로 이용가능
            var query = names.Where(s => s.Length >= 7);

            foreach (var item in query)
            {
                Console.WriteLine(item);
            }
            
            Console.WriteLine("=================================");
            //FindAll -> 의 경우는 List<T>일 경우만 사용가능 
            var name = names.FindAll(s => s.Length >= 7);
            foreach (var item in name)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("================================");
            //배열인 경우에소 FindAll 을 사용할 수 지만 
            string[] array = new string[] { "이준호", "이가영", "조수련", "이진표" };
            var a = Array.FindAll(array, s => s.Length >= 3);

            foreach (var item in a)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("================================");
            //where -> select -> 반환값은 IEnumerable<string>
            IEnumerable<string> vs = names.Where(s => s.Length >= 7).Select(s => s.ToLower());
            foreach (var item in vs)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("================================");
            var query2 = names.Select(s => s.Length);
            foreach (var item in query2)
            {
                Console.WriteLine($"{item}");
            }

        }
    }
}
반응형