κΉμ μ
νμΈλνκ΅ 22νλ² μ»΄ν¨ν°κ³΅νκ³Ό
νμΈλνκ΅ 22νλ² μ»΄ν¨ν°κ³΅νκ³Ό
LINQλ C#μμ 컬λ μ λ°μ΄ν°λ₯Ό μ½κ² μ§μνκ³ μ‘°μνλ κΈ°λ₯μ΄λ€. μ λ ¬, νν°λ§, λ³ν λ±μ ν μ μλ€.
LINQλ μ§μ° μ€νκ³Ό μ¦μ μ€ν λ κ°μ§ λ°©μμΌλ‘ λμνλ€.
var sortedList = arr.OrderBy(v => v);
IEnumerable<T>foreachλ ToList() ν λ μ€νvar evenNumbers = arr.Where(v => v % 2 == 0);
v % 2 == 0 β μ§μλ§var evenList = arr.Where(v => v % 2 == 0).ToList();
IEnumerable<T>λ₯Ό List<T>λ‘ λ³νForEach κ°μ λ©μλ μΈ λ νμyield returnμ μ°λ©΄ λ°μ΄ν°λ₯Ό μμ°¨μ μΌλ‘ λ°νν μ μλ€. λ©λͺ¨λ¦¬ ν¨μ¨μ !
IEnumerable<int> GetEvenNumbers(int[] arr)
{
foreach (var v in arr)
{
if (v % 2 == 0)
{
yield return v; // μ§μλ§ λ°ν
}
}
}
var evenNumbers = GetEvenNumbers(new int[] { 1, 2, 3, 4, 5 });
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
κ²°κ³Ό:
2
4
νΉμ§:
IEnumerableκ³Ό IEnumerator ꡬνGetEnumerator λ©μλ μλ μμ±OrderBy, Where λ±μ₯μ : λ©λͺ¨λ¦¬ ν¨μ¨μ , λΆνμν μ°μ° νΌν¨
λ¨μ : μ¬λ¬ λ² μ΄κ±°νλ©΄ λ€μ κ³μ°
var query = arr.Where(v => v % 2 == 0);
foreach (var item in query) // μ΄λ μ€μ νν°λ§ μν
{
Console.WriteLine(item);
}
ToList(), ToArray() λ±μ₯μ : ν λ² κ³μ°νκ³ λ©λͺ¨λ¦¬μ μ μ₯, μ¬μ¬μ© μ λΉ λ¦
λ¨μ : λ©λͺ¨λ¦¬ μ¬μ©
var result = arr.Where(v => v % 2 == 0).ToList(); // μ¦μ μ€ν
| κ΅¬λΆ | IEnumerable |
List |
|---|---|---|
| μ€ν λ°©μ | μ§μ° μ€ν | μ¦μ μ€ν |
| λ°μ΄ν° μ μ₯ | μ μ₯ μμ (μ€μκ° μ°μ°) | λ©λͺ¨λ¦¬μ μ μ₯ |
| μ¬μ¬μ©μ± | λ§€λ² λ€μ κ³μ° | μ μ₯λ κ²°κ³Ό μ¬μ¬μ© |
| μ±λ₯ | λ©λͺ¨λ¦¬ ν¨μ¨μ | μ κ·Ό μλ λΉ λ¦ |
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int[] arr = { 5, 1, 4, 2, 3 };
var sortedEvenNumbers = arr
.OrderBy(v => v) // μ λ ¬
.Where(v => v % 2 == 0) // μ§μ νν°λ§
.ToList(); // μ¦μ μ€ν λ° List λ³ν
sortedEvenNumbers.ForEach(v => Console.WriteLine(v));
}
}
κ²°κ³Ό:
2
4
yield returnμ μ§μ° μ€νκ³Ό λΉμ·νκ² λ©λͺ¨λ¦¬ ν¨μ¨μ μΌλ‘ λ°μ΄ν° λ°ν