C# 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : LINQ 데모: 초간단 LINQ 사용 샘플 코드
글번호: 353
작성자: 레드플러스
작성일: 2013/04/19 오후 12:34:00
조회수: 3705
파일: LinqDemo.png (71 KB) / 전송수: 1727
LinqDemo.png
// LINQ(Language INtegrate Query) : 마치 SQL문을 사용하든 프로그램에서 사용하는 쿼리문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LinqDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 컬렉션에 담기
            List<Car> cars = new List<Car>() {
                new Car() { Make = "BMW", Model = "BMW1", Year = 2010 },
                new Car() { Make = "BMW", Model = "BMW3", Year = 2011 },
                new Car() { Make = "Benz", Model = "C", Year = 2012 },
                new Car() { Make = "Benz", Model = "E", Year = 2013 },
                new Car() { Make = "Benz", Model = "S", Year = 2014 },
            };
            #region -
            //// 전체 출력
            //for (int i = 0; i < cars.Count; i++)
            //{
            //    Console.WriteLine("{0}, {1}, {2}"
            //        , cars[i].Make, cars[i].Model, cars[i].Year);
            //}
            #endregion
            // LINQ 사용해서 BMW만 출력 : select * from cars where make = ''BMW''
            var bmws = from car in cars
                       where car.Make == "BMW" && car.Year == 2011
                       select car;
            //foreach (var c in bmws)
            //{
            //    Console.WriteLine("{0}, {1}, {2}", c.Make, c.Model, c.Year);
            //}
            // 2012년도 이후로 출시된 자동차
            var newCars = from car in cars
                          where car.Year >= 2012
                          select car;
            //foreach (var c in newCars)
            //{
            //    Console.WriteLine("{0}, {1}, {2}", c.Make, c.Model, c.Year);
            //}
            // 가장 최근에 출시된 자동차부터 정렬
            var orderedCars = from car in cars
                              orderby car.Year descending
                              select car;
            foreach (var c in orderedCars)
            {
                Console.WriteLine("{0}, {1}, {2}", c.Make, c.Model, c.Year);
            }

            // LINQ 식을 통해서 새로운 개체 형식으로 반환
            var newObjects = from car in cars
                             orderby car.Year ascending
                             select new NewType { Maker = car.Make }; // 익명타입
            foreach (var c in newObjects)
            {
                Console.WriteLine("{0}", c.Maker);
            }
        }
    }

    class Car
    {
        public string Make { get; set; }
        public string Model { get; set; }
        public int Year { get; set; }
    }

    class NewType
    {
        public string Maker { get; set; }
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 using 지시자를 사용한 Type Definition TypeDefinitionWithUsing(1).png(73 KB) 레드플러스 2014-01-03 3198
현재글 LINQ 데모: 초간단 LINQ 사용 샘플 코드 LinqDemo.png(71 KB) 레드플러스 2013-04-19 3705
다음글 리플렉션(Reflection) - 레드플러스 2012-09-25 3109
 
손님 사용자 Anonymous (손님)
로그인 Home