■ Expression<T> 클래스를 사용해 객체 속성에 설정된 어트리뷰트를 구하는 방법을 보여준다. ▶ CustomAttribute.cs
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 32 33 34 35 36 37
|
namespace TestProject; /// <summary> /// 커스텀 어트리뷰트 /// </summary> public class CustomAttribute : Attribute { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 텍스트 - Text /// <summary> /// 텍스트 /// </summary> public string Text { get; protected set; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - CustomAttribute(text) /// <summary> /// 생성자 /// </summary> /// <param name="text">텍스트</param> public CustomAttribute(string text) { Text = text; } #endregion } |
▶ Product.cs
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 32 33 34 35 36 37 38
|
namespace TestProject; /// <summary> /// 제품 /// </summary> public class Product { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 제품 코드 - ProductCode /// <summary> /// 제품 코드 /// </summary> public string ProductCode { get; set; } #endregion #region 명칭 - Name /// <summary> /// 명칭 /// </summary> [Custom("테스트")] public string Name { get; set; } #endregion #region 가격 - Price /// <summary> /// 가격 /// </summary> public decimal Price { get; set; } #endregion } |
▶ Program.cs
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 32 33 34 35 36 37 38 39 40 41
|
using System.Linq.Expressions; using System.Reflection; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { Type sourceType = typeof(Product); PropertyInfo propertyInfo = sourceType.GetProperty("Name"); Expression<Func<Product, string>> expression = p => p.Name; MemberExpression memberExpression = expression.Body as MemberExpression; object[] customAttributeArray = memberExpression.Member.GetCustomAttributes(typeof(CustomAttribute), false); if(customAttributeArray.Length > 0) { Console.WriteLine((customAttributeArray[0] as CustomAttribute).Text); } } #endregion } |
TestProject.zip
■ Enumerable 클래스의 GroupBy<TSource, TKey> 확장 메소드를 사용하는 방법을 보여준다. ▶ Product.cs
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 32 33 34 35 36 37
|
namespace TestProject; /// <summary> /// 제품 /// </summary> public class Product { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 제품 코드 - ProductCode /// <summary> /// 제품 코드 /// </summary> public string ProductCode { get; set; } #endregion #region 명칭 - Name /// <summary> /// 명칭 /// </summary> public string Name { get; set; } #endregion #region 가격 - Price /// <summary> /// 가격 /// </summary> public decimal Price { get; set; } #endregion } |
▶ ProductSummary.cs
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
namespace TestProject; /// <summary> /// 제품 요약 /// </summary> public class ProductSummary { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 제품명 - ProductName /// <summary> /// 제품명 /// </summary> public string ProductName { get; set; } #endregion #region 금액 - Amount /// <summary> /// 금액 /// </summary> public string Amount { get; set; } #endregion #region 수량 - Quantity /// <summary> /// 수량 /// </summary> public string Quantity { get; set; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public #region 문자열 구하기 - ToString() /// <summary> /// 문자열 구하기 /// </summary> /// <returns>문자열</returns> public override string ToString() { return $"{ProductName} | {Amount} | {Quantity}"; } #endregion } |
▶ Program.cs
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { Random random = new Random(); List<Product> sourceList = new List<Product>(); for(int i = 0; i < 100; i++) { int value = random.Next(1, 10); sourceList.Add(new Product { ProductCode = $"제품코드 {value}", Name = $"제품명 {value}", Price = random.Next(1000, 10000) }); } List<ProductSummary> targetList = sourceList .GroupBy(source => source.ProductCode) .Select ( sourceGroup => new ProductSummary { ProductName = sourceGroup.First().Name, Quantity = sourceGroup.Count().ToString(), Amount = sourceGroup.Sum(c => c.Price).ToString(), } ) .OrderBy(source => source.ProductName) .ToList(); foreach(ProductSummary summary in targetList) { Console.WriteLine(summary); } } #endregion } |
TestProject.zip
■ Expression<T> 클래스를 사용해 객체의 디폴트 값을 구하는 방법을 보여준다. ▶ Expression 클래스 : 객체 디폴트 값 구하기 예제 (C#)
|
클래스 : 객체 디폴트 값 구하기 예제 (C#)">Console.WriteLine($"int : {GetObjectDefaultValue<int >()}"); Console.WriteLine($"string : {GetObjectDefaultValue<string >()}"); Console.WriteLine($"DateTime : {GetObjectDefaultValue<DateTime>()}"); |
▶
더 읽기
■ Enumerable 클래스의 Take<T>/Concat<T>/Skip<T> 확장 메소드를 사용해 배열에서 특정 요소를 삭제하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int[] sourceArray = { 1, 3, 4, 9, 2 }; int valueToRemove = 4; int index = Array.IndexOf(sourceArray, valueToRemove); if(index >= 0) { int[] targetArray = sourceArray.Take(index).Concat(sourceArray.Skip(index + 1)).ToArray(); foreach(int target in targetArray) { Console.WriteLine(target); } } |
■ Enumerable 클래스의 Except<T> 확장 메소드를 사용해 배열에서 특정 요소를 삭제하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
int[] sourceArray = { 1, 3, 4, 9, 2 }; int[] targetArray = sourceArray.Except(new int[]{ 4 }).ToArray(); foreach(int target in targetArray) { Console.WriteLine(target); } |
■ 배열에서 특정 요소를 삭제하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
int[] sourceArray = { 1, 3, 4, 9, 2 }; int valueToRemove = 4; int[] targetArray = sourceArray.Where(source => source != valueToRemove).ToArray(); foreach(int target in targetArray) { Console.WriteLine(target); } |
■ Enumerable 클래스의 Zip<TFirst, TSecond, TResult> 확장 메소드를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
using System; using System.Collections.Generic; using System.Linq; string[] letterArray = new string[] { "A", "B", "C", "D", "E" }; int[] numberArray = new int[] { 1, 2, 3 }; IEnumerable<string> resultEnumerable = letterArray.Zip(numberArray, (l, n) => l + n.ToString()); foreach(string result in resultEnumerable) { Console.WriteLine(result); } /* A1 B2 C3 */ |
■ Enumerable 클래스의 SkipLast<T> 확장 메소드를 사용해 마지막 값을 제외한 열거 가능형을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
List<int> sourceList = new List<int> { 1, 4, 6, 8, 9 }; IEnumerable<int> targetEnumerable = sourceList.SkipLast(1); foreach(int value in targetEnumerable) { Console.WriteLine(value); } |
■ Enumerable 클래스의 SelectMany<TSource, TResult> 확장 메소드를 사용해 바이트 배열을 병합하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
#region 병합하기 - Merage(sourceByteArrayArray) /// <summary> /// 병합하기 /// </summary> /// <param name="sourceByteArrayArray">소스 바이트 배열 배열</param> /// <returns>병합 바이트 배열</returns> public static byte[] Merge(params byte[][] sourceByteArrayArray) { return sourceByteArrayArray.SelectMany(x => x).ToArray(); } #endregion |
■ DynamicQueryable 클래스의 Where<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Student.cs
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
|
namespace TestProject { /// <summary> /// 학생 /// </summary> public class Student { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 성명 - Name /// <summary> /// 성명 /// </summary> public string Name { get; set; } #endregion #region 나이 - Age /// <summary> /// 나이 /// </summary> public int Age { get; set; } #endregion } } |
▶ Program.cs
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 32 33 34 35 36 37 38 39 40 41
|
using System; using System.Collections.Generic; using System.Data; using System.Linq.Dynamic; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { List<Student> list = new List<Student>(); list.Add(new Student { Name = "홍길동", Age = 20 }); list.Add(new Student { Name = "김영희", Age = 30 }); list.Add(new Student { Name = "이동수", Age = 20 }); list.Add(new Student { Name = "강동원", Age = 50 }); foreach(Student student in list.Where("Age > 20")) { Console.WriteLine(student.Name); } } #endregion } } |
TestProject.zip
■ System.Linq.Dynamic 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
더 읽기
■ Enumerable 클래스의 TakeWhile<T> 확장 메소드를 사용해 지정된 조건이 true인 동안 시퀀스에서 요소를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; using System.Collections.Generic; using System.Linq; IList<string> stringList = new List<string>() { "One", "Two", "Three", "Four", "Five", "Six" }; IEnumerable<string> resultEnumerable = stringList.TakeWhile((source, index) => source.Length > index); foreach(string source in resultEnumerable) { Console.WriteLine(source); } |
■ Enumerable 클래스의 Where/ToArray 확장 메소드를 사용해 배열에서 null 요소를 제거하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using System; using System.Linq; Employee[] sourceArray = new Employee[] { new Employee { EmployeeID = 1, Name = "김철수", Age = 20 }, new Employee { EmployeeID = 2, Name = "홍길동", Age = 30 }, null , new Employee { EmployeeID = 3, Name = "이영희", Age = 25 } }; Employee[] targetArray = sourceArray.Where(employ => employ != null).ToArray(); foreach(Employee employee in targetArray) { Console.WriteLine(employee.Name); } |
■ IEnumerable<T> 인터페이스를 사용해 임의 요소를 구하는 방법을 보여준다. ▶ IEnumerable 인터페이스 : 임의 요소 구하기 예제 (C#)
|
인터페이스 : 임의 요소 구하기 예제 (C#)">using System.Collections.Generic; List<int> sourceList = new List<int> { 1, 4, 2, 3,5, 3, 4, 43 }; int randomElement = GetRandomElement(sourceList); |
▶ IEnumerable 인터페이스
더 읽기
■ Enumerable 클래스의 Concat<T> 확장 메소드를 사용해 배열을 복사하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Random random = new Random(DateTime.Now.Millisecond); byte[] sourceArray1 = new byte[1000000]; byte[] sourceArray2 = new byte[1000000]; byte[] sourceArray3 = new byte[1000000]; byte[] targetArray = new byte[3000000]; for(int i = 0; i < 1000000; i++) { sourceArray1[i] = (byte)random.Next(0, 255); sourceArray2[i] = (byte)random.Next(0, 255); sourceArray3[i] = (byte)random.Next(0, 255); } IEnumerable<byte> targetEnumerable = sourceArray1.Concat(sourceArray2).Concat(sourceArray3); |
■ Expression<T> 클래스를 사용해 람다식을 만드는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; using System.Linq.Expressions; ParameterExpression paremeterExpression = Expression<Func<int, bool>>.Parameter(typeof(int), "p"); Expression<Func<int, bool>> expression = Expression<Func<int, bool>>.Lambda<Func<int, bool>> ( Expression<Func<int, bool>>.LessThan ( paremeterExpression, Expression<Func<int, bool>>.Constant(5) ), paremeterExpression ); Func<int, bool> function = (Func<int, bool>)expression.Compile(); bool result = function(4); Console.WriteLine(result); |
———————————————————————————————————————— ————————————————————————————————————————
■ Enumerable 클래스의 DefaultIfEmpty<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34 35
|
using System; using System.Collections.Generic; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { List<int> resultList = new List<int>(); foreach(var result in resultList.DefaultIfEmpty()) { Console.WriteLine(result); } } #endregion } } |
■ Enumerable 클래스의 ElementAtOrDefault<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 에러가 발생한다. //Console.WriteLine("11번째 항목 : {0}", integerArray.ElementAt(10)); Console.WriteLine("11번째 항목 : {0}", integerArray.ElementAtOrDefault(10)); } #endregion } } |
■ Enumerable 클래스의 ElementAt<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Console.WriteLine("6번째 항목 : {0}", integerArray.ElementAt(5)); // 에러가 발생한다. //Console.WriteLine("11번째 항목 : {0}", integerArray.ElementAt(10)); } #endregion } } |
■ Enumerable 클래스의 SingleOrDefault<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 에러가 발생한다. //Console.WriteLine("조건을 충족하는 단일 항목 : {0}", integerArray.Single(n => n % 11 == 0)); Console.WriteLine("조건을 충족하는 단일 항목 : {0}", integerArray.SingleOrDefault(n => n % 11 == 0)); } #endregion } } |
■ Enumerable 클래스의 LastOrDefault<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 에러가 발생한다. //Console.WriteLine("조건을 충족하는 마지막 항목 : {0}", integerArray.Last(n => n % 11 == 0)); Console.WriteLine("조건을 충족하는 마지막 항목 : {0}", integerArray.LastOrDefault(n => n % 11 == 0)); } #endregion } } |
■ Enumerable 클래스의 Single<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Console.WriteLine("조건을 충족하는 단일 항목 : {0}", integerArray.Single(n => n % 9 == 0)); // 에러가 발생한다. //Console.WriteLine("조건을 충족하는 단일 항목 : {0}", integerArray.Single(n => n % 2 == 0)); } #endregion } } |
■ Enumerable 클래스의 Last<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Console.WriteLine("마지막 항목 : {0}", integerArray.Last()); Console.WriteLine("조건을 충족하는 마지막 항목 : {0}", integerArray.Last(n => n % 4 == 0)); } #endregion } } |
■ Enumerable 클래스의 FirstOrDefault<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33 34
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 에러가 발생한다. //Console.WriteLine("조건을 충족하는 첫번째 항목 : {0}", integerArray.First(n => n % 11 == 0)); Console.WriteLine("조건을 충족하는 첫번째 항목 : {0}", integerArray.FirstOrDefault(n => n % 11 == 0)); } #endregion } } |
■ Enumerable 클래스의 First<T> 확장 메소드를 사용하는 방법을 보여준다. ▶ Program.cs
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 32 33
|
using System; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] integerArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Console.WriteLine("첫번째 항목 : {0}", integerArray.First()); Console.WriteLine("조건을 충족하는 첫번째 항목 : {0}", integerArray.First(n => n % 4 == 0)); } #endregion } } |