C#/수업내용

03/23 Linq Find, Where, FindAll, Sort 연습

박준희 2021. 3. 23. 12:16

Program.cs

using System;

namespace Study07
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Program");
            new App();
        }
    }
}

App.cs

using System;
using System.Collections.Generic;
using System.Linq;

namespace Study07
{
    public class App
    {        
        //생성자 
        public App()
        {
            Console.WriteLine("App");

            //컬렉션 생성
            List<Item> items = new List<Item>();

            //Item객체 생성
            Item item1 = new Item("장검");
            Item item2 = new Item("단검");
            Item item3 = new Item("단검");

            //컬렉션 추가
            items.Add(item1);
            items.Add(item2);
            items.Add(item3);
                        

            //컬렉션에서 item객체의 이름이 xxx인것을 찾으세요
            //Linq: Find + 람다
            Console.WriteLine("Find");
            Item findItem = items.Find(x => x.Name == "단검");
            Console.WriteLine(findItem.Name);

            //만약에 같은 이름의 요소가 있다면 모두 찾아서 출력 하세요
            //Linq: Where + 람다
            Console.WriteLine("Where");
            IEnumerable<Item> findItems = items.Where(x => x.Name == "단검");            
            foreach(Item item in findItems)
            {

                Console.WriteLine("foundItem: {0}", item.Name);
            }

            //FindAll
            Console.WriteLine("FindAll");
            List<Item> findAllItems = items.FindAll(x => x.Name == "단검");
            foreach(Item item in findAllItems)
            {
                Console.WriteLine("foundItem: {0}", item.Name);
            }

            //Sort
            Console.WriteLine("Sort");
            foreach(Item item in items)
            {
                Console.WriteLine(item.Name);
            }
            items.Sort((x1,x2) => x1.Name.CompareTo(x2.Name));
            foreach (Item item in items)
            {
                Console.WriteLine(item.Name);
            }
        }

        
    }
}

Item.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study07
{
    public class Item
    {
        public string Name { get; set; }        
        public Item(string name)
        {
            Name = name;
        }
    }
}