반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.CSharpPhrase.Extension;
namespace 시퀀스
{
class Program
{
static void Main(string[] args)
{
string[] names = new string[] { "Seoul", "New Delhi", "Bangkok", "London", "Paris", "Berlin", "Canberra", "Hong Kong" };
var query = names.Where(s => s.Length <= 5);
foreach (var item in query)
{
Console.WriteLine(item);
}
Console.WriteLine("==============");
//지연실행
names[0] = "Busan";
//실제로 데이터가 필요할 때 쿼리가 실행되는 것입니다.
foreach (var item in query)
{
Console.WriteLine(item);
}
//쿼리를 명시적으로 실행하고 싶을 때 사용하는 메서드->ToArray / ToList
Console.WriteLine("==============");
var query2 = names.Where(s => s.Length <= 5).ToArray(); //즉시실행
foreach (var item in query2)
{
Console.WriteLine(item);
}
Console.WriteLine("==============");
names[0] = "Busan";
foreach (var item in query2)
{
Console.WriteLine(item);
}
Console.WriteLine("==============");
var count = names.Count(s => s.Length > 5);
Console.WriteLine(count);
var query3 = from s in names where s.Length >= 5 select s.ToUpper();
// 쿼리구문을 쓰는것 보다는 그냥 LINQ를 쓰는게 났겠다 .
var query4 = names.Where(s => s.Length >= 5).Select(s => s.ToUpper());
// 쿼리구문은 LINQㅡ의 모든 기능을 이용할 수 없다 .
// 점(.)으로 연결하는 메서드 구문이 생각을 방해 받지 않고 연속해석 코드를 작성할 수 있다.
// 점으로 연결하는 베서드 구문은 비주얼 스튜디오가 가진 강력한 인텔리센스 기능을 충분히 활용할 수 있다.
}
}
}
반응형
'C#' 카테고리의 다른 글
c# 네트워크 공부 2(클래스 활용) (0) | 2021.01.15 |
---|---|
c# 네트워크 공부 (IPAddress 클래스 / Dns클래스) (0) | 2021.01.14 |
라디오 버튼과 그룹 박스 사용법 (0) | 2021.01.01 |
LINQ_to_Objects의_기초 (0) | 2020.12.15 |
List 클래스와 람다식의 조합 (0) | 2020.12.14 |
인터페이스 개념 및 연습 C# (0) | 2020.11.18 |