티스토리 뷰

C#/복습

Linq

Game Client Lee Hwanguk 2023. 1. 23. 23:25
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp8
{
    internal class App
    {
       
        public App()
        {
            //Linq 연습
            Item[] items = {
                new Item(){Name="장검",Damage=10},
                new Item(){Name="단검",Damage=3},
                new Item(){Name="도끼",Damage=12},
                new Item(){Name="창",Damage=11},
                new Item(){Name="방패",Damage=0},
                new Item(){Name="지팡이",Damage=5},
            }; //개체 이니셜라이징, 배열에서만 사용가능하다. List불가

            //기존 for문을 이용한 정렬 방식
            for(int i=0; i<items.Length; i++)
            {
                Item item = items[i];
                if(item.Damage>=5)
                {
                    Console.WriteLine("데미지가 5 이상인 무기 ->{0}",item.Name);
                }
            }

            //기존 for문과 List를 이용한 방식(for문으로 골라내고 List에 담아서 foreach로 출력)
            List<Item> list = new List<Item>();
            for(int i=0; i<items.Length; i++)
            {
                Item item=items[i];
                if(item.Damage>=5)
                {
                    list.Add(item);
                }
            }
            foreach(var item in list)
            {
                Console.WriteLine("데미지가 5이상인 무기는 {0}/{1}",item.Name,item.Damage);
            }

            //Linq를 이용한 간결한 정렬방식(from, where, orderby, select)
            IEnumerable<string>itemNames=from item in items //var itemNames로 가능(무명형식)
                                         where item.Damage>=5
                                         orderby item.Damage ascending//오름차순
                                         select item.Name;
            foreach(string itemsName in itemNames)
            {
                Console.WriteLine(itemsName);
            }

            var itemName=from item in items //무명 형식 var itemsName
                         where item.Name=="장검"
                         select item.Name;
            foreach(var itemsName in itemNames) 
            {
                Console.WriteLine(itemsName);
            }
        }
        

    }
}

'C# > 복습' 카테고리의 다른 글

자료구조-그래프  (0) 2023.01.29
직렬화, 역직렬화  (0) 2023.01.24
람다식(문),Action, Func  (1) 2023.01.23
대리자, 익명 메서드  (0) 2023.01.23
4가지 Cullection (List,Queue,Stack,Dictionary)  (0) 2023.01.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함