LINQ์ foreach
var list = new List<Profile>
{
new Profile() { Name = "A", Age = 1 },
new Profile() { Name = "B", Age = 2 },
new Profile() { Name = "C", Age = 3 },
new Profile() { Name = "D", Age = 4 },
new Profile() { Name = "E", Age = 5 },
new Profile() { Name = "F", Age = 3 },
};
var a = list.Where(profile => profile.Age > 1);
if (a.Any()) {
foreach (var profile in a) {
Console.WriteLine(profile.Name);
}
foreach (var profile in a) {
Console.WriteLine(profile.Age);
}
}
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด a์ Age๊ฐ 1๋ณด๋ค ํฐ B, C, D, E, F๊ฐ ๋ด๊ธฐ๊ณ , ๊ทธ๊ฑฐ์ ๋ง๋ name๋ค๊ณผ age๋ค์ด ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ , profile.Age > 1 ์ด ๋ถ๋ถ์ ์ด ์ฝ๋์์ ๋ช ๋ฒ ์คํ๋ ๊น?
๋น์ฐํ var a๋ฅผ ์ ์ธํ ๋ ์คํ๋๊ธฐ ๋๋ฌธ์ 1๋ฒ์ด๋ผ๊ณ ์๊ฐํ ๊ฒ์ด๋ค. ์ ์ด๋ ๋๋ ๊ทธ๋ฌ๋ค.
ํ์ง๋ง Break point๋ฅผ ์ก๊ณ ๋๋ฒ๊น
์ ํด๋ณด๋ฉด 1๋ฒ์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
Break Point๋ฅผ ์ก๊ธฐ ์ํด ์ฝ๋๋ฅผ ์ด๋ ๊ฒ ๋ณํํ์๋ค.
IEnumerable<Profile> Check(List<Profile> list)
{
return list.Where(profile =>
{
return profile.Age > 1;
});
}
var a = Check(list);

๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ Break Point๋ฅผ ์ก๊ณ ์คํ์ํค๋ฉด
1. var a = Check(list);
2. a.Any()
3. return profile.Age > 1;
4. foreach ( ... a)
5. return profile.Age > 1;
6. Console.WriteLine()
7. foreach ( ... a)
8. return profile.Age > 1;
9. Console.WriteLine()
์์ ๊ฐ์ด 3๋ฒ ์คํ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
var a = Check(list) ๋ a์ Check(list)์ ์คํ ๊ฒฐ๊ณผ๊ฐ ์๋๋ผ, Check(list)๋ฅผ ํธ์ถํ๋ ์ฝ๋ ์กฐ๊ฐ์ด๋ฉฐ ์ด๋๋ง๋ค Check(list)๋ฅผ ๋ค์ ์คํํ๋ ๊ฒ์ด๋ค.
์ด๋ฐ ์ด์ ๋ IEnumerable<T> ์ํ์ค์ ๋ํ ์ฐ์ฐ์ ์ ์ธ์ ์ผ๋ก ์ ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ ์ธํ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ๊ณ์ฐํ์ง ์๊ณ , ๋์ค์ผ๋ก ๋ฏธ๋ฃจ๋ ๊ฒ์ "์ง์ฐ ์คํ" ๋๋ "์ง์ฐ ๋ก๋ฉ"์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๋์ LINQ๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ foreach๋ ๋ ๋ค๋ฅธ LINQ๋ฌธ์ ์ ์ธํ๋ค๋ฉด, ์ฑ๋ฅ์ด ๋งค์ฐ ๋จ์ด์ง๊ฒ ๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์์ list๋ก ๋ณํ์์ผ ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
var a = list.Where(profile => profile.Age > 1).ToList();
'๐ฅ๏ธ > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] ์ ํธ๋ฆฌ๋ทฐํธ(Attribute)๋? (2) | 2023.10.18 |
---|---|
[C# WPF] e.Handled = true; (0) | 2023.10.16 |
[C#] LINQ์ Single()์ ๋ํด์ (0) | 2023.10.12 |
[C#] ์ค๋ ๋์ ํฌ๋ฆฌํฐ์ปฌ ์น์ (Critical Section) (0) | 2023.10.11 |
[C#] ์ค๋ ๋(Thread) (0) | 2023.10.11 |