C# 연습문제 : LINQ (뇌를 자극하는 C# 5.0)

2022. 9. 25. 19:50문제/C# 연습문제

1.다음과 같은 배열이 있다고 할 때, Cost는 50이상 , MaxSpeed는 150 이상인 레코드만 조회하는 LINQ를 작성하세요.

 public class Car
    {
        public int Cost { get; set; }
        public int MaxSpeed { get; set; }
    }

    Car[] cars =
    {
        new Car(){Cost=56,MaxSpeed = 120 },
        new Car(){Cost=70,MaxSpeed = 150 },
        new Car(){Cost=45,MaxSpeed = 180 },
        new Car(){Cost=32,MaxSpeed = 200 },
        new Car(){Cost=82,MaxSpeed = 280 },

    };

    var selected = /* Cost가 50 이상, MaxSpeed는 150 이상인 레코드를 조회하는 LINQ*/;
using System;
using System.Linq;

namespace BookTestC
{
    public class Car
    {
        public int Cost { get; set; }
        public int MaxSpeed { get; set; }
    }

    public class Program
    {
        private static void Main(string[] args)
        {
            Car[] cars =
             {
                new Car() { Cost = 56, MaxSpeed = 120 },
                new Car() { Cost = 70, MaxSpeed = 150 },
                new Car() { Cost = 45, MaxSpeed = 180 },
                new Car() { Cost = 32, MaxSpeed = 200 },
                new Car() { Cost = 82, MaxSpeed = 280 },
            };

            var selected = from car in cars
                           where car.Cost >= 50
                           where car.MaxSpeed >= 150
                           select car;

            Console.WriteLine("코스트가 50이상 이고 최대속도가 150이상인 것들을 출력합니다.");

            foreach (var car in selected)
            {
                Console.WriteLine("코스트 : {0} , 최대속도 : {1}", car.Cost, car.MaxSpeed);
            }
        }
    }
}

 

 

2.다음 코드에서 cars.Where(c=>c.Cost <60).OrderBy(c=>c.Cost)와 동일한 결과를 반환하는 LINQ를 작성하세요.

public class Car
    {
        public int Cost { get; set; }
        public int MaxSpeed { get; set; }
    }

    Car[] cars =
    {
        new Car(){Cost=56,MaxSpeed = 120 },
        new Car(){Cost=70,MaxSpeed = 150 },
        new Car(){Cost=45,MaxSpeed = 180 },
        new Car(){Cost=32,MaxSpeed = 200 },
        new Car(){Cost=82,MaxSpeed = 280 },

    };

    var selected =cars.Where(c=>c.Cost<60).OrderBy(c=>c.Cost);
            var selected = from car in cars
                           where car.Cost < 60
                           orderby car.Cost
                           select car;