[C#] 람다식으로 데이타 처리 와 LINQ로 데이타 처리 비교~


class Profile
    {
        public string Name { get; set; }
        public int Height { get; set; }
    }



    class Program
    {


        static void Main(string[] args)
        {

            Profile[] arrProfile =
            {
                new Profile(){Name = "정우성", Height=186},
                new Profile(){Name = "김태희", Height=158},
                new Profile(){Name = "고현정", Height=172},
                new Profile(){Name = "이문세", Height=178},
                new Profile(){Name = "하하", Height=171}
            };

            var profiles = arrProfile.Where(profile => profile.Height < 175).
                                      OrderBy(profile => profile.
                                      Height).Select(profile => new
                                      {
                                          Name = profile.Name,
                                          InchHeight = profile.Height * 0.393
                                      }
                                      );
            // 람다식도 전보단 간단하고 읽기 좋긴 하지만 LINQ 가 훨씬 낫다!!!!
           // 데이타를 다루는 데서는 가독성 및 작성에서 GOOD
           // 하지만 간단하게 평균을 구한다던지 그런건 역시 람다식이 편하다.. ㅎ

            foreach (var profile in profiles)
                Console.WriteLine("{0}, {1}", profile.Name, profile.InchHeight);
        }
    }

}
------------------------------------------------------------------------------------------------



class Profile
    {
        public string Name { get; set; }
        public int Height { get; set; }
    }



    class Program
    {


        static void Main(string[] args)
        {

            Profile[] arrProfile =
            {
                new Profile(){Name = "정우성", Height=186},
                new Profile(){Name = "김태희", Height=158},
                new Profile(){Name = "고현정", Height=172},
                new Profile(){Name = "이문세", Height=178},
                new Profile(){Name = "하하", Height=171}
            };


            var heightStat = from profile in arrProfile
                             group profile by profile.Height < 175 into g
                             select new
                             {
                                 Group = g.Key == true ? "175미만" : "175이상",
                                 Count = g.Count(),
                                 Max = g.Max(profile => profile.Height),
                                 Min = g.Min(profile => profile.Height),
                                 Average = g.Average(profile => profile.Height)
                             };
            foreach (var stat in heightStat)
            {
                Console.Write("{0} - Count:{1}, Max{2} ", stat.Group, stat.Count, stat.Max);
                Console.WriteLine(" Min :{0}, Average : {1}", stat.Min, stat.Average);
            }
        }
    }
}

// 말도 안되게 간단하다...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
// 쉽고 재밋다는것 .
결과는~

// 중요한건 LINQ 랑 람다식이랑 둘이 조합해서 잘 쓰면 옛날방식 코딩은 잊어도 될거 같다..
 아닌가? ㅋㅋ
이번장에서 중요한 구문은 LINQ 와 람다식의 조합인 아래구문이 중요~



모든 예제와 지식은 '뇌를 자극하는 C# 4.0' 에서~ 왔음을 알립니다

댓글

이 블로그의 인기 게시물

[C# Winform 예제] ScreenSaver 스크린세이버 만들기

아 정말 이사람 IELTS 관한 비법 글은.. 정말 공감10000%

Vocabulary for IELTS (2000 words) advanced level.