[C#] LINQ: ๊ทธ๋ฃน

[์›๋ณธ ๋งํฌ]

์ด์ „ ํฌ์ŠคํŠธ์—์„œ๋Š” select๋กœ๋งŒ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐฐ์ถœํ–ˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค๋กœ๋„ ๊ฒฐ๊ณผ์˜ ๋ฐ˜ํ™˜์ด ๊ฐ€๋Šฅํ•œ๋ฐ... ๊ทธ๊ฒŒ ๋ฐ”๋กœ ๊ทธ๋ฃน์ด๋‹ค.

linq์˜ group by ์ ˆ์€ ํŠน์ • ์š”์†Œ๊ฐ€ ๊ฐ™์€ ๋…€์„๋“ค์„ ๋ฌถ์–ด์„œ ๊ทธ๋ฃน์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
**group ๊ทธ๋ฃน๋Œ€์ƒ by **๊ทธ๋ฃน๊ธฐ์ค€
"๊ทธ๋ฃน๋Œ€์ƒ" ์š”์†Œ๋ฅผ "๊ทธ๋ฃน๊ธฐ์ค€"์˜ ๊ทธ๋ฃน์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทผ๋ฐ ๊ทธ๋ฃน์€ ์—ฌ๋Ÿฌ๊ฐœ์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๊ทธ๋ฃน๋ฌธ์˜ ๋ฐ˜ํ™˜ํ˜•์‹์€ ๊ทธ๋ฃน์˜ ์ปฌ๋ ‰์…˜ ํ˜•ํƒœ๊ฐ€ ๋œ๋‹ค.
select๊ฐ€ ๊ฐœ๋ณ„์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์„œ, ๋‹จ์ˆœํ•œ ์š”์†Œ์˜ ์ปฌ๋ ‰์…˜์„ ๋ฐ˜ํ™˜ํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅด๋‹ค.

์ฝ”๋“œ๋ฅผ ๋จผ์ € ๋ณด์ž.
๋งŒ์•ฝ ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ ํ™€์ˆ˜์ธ ๊ฒƒ๊ณผ ์ง์ˆ˜์ธ ๊ฒƒ๋“ค์„ ๋”ฐ๋กœ ๋ชจ์•„์•ผ ํ•œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ?
์ด๋Š” ๊ทธ๋ฃน์„ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฃน๊ธฐ์ค€ ๋ถ€๋ถ„์— ๊ฐ ์š”์†Œ์˜ 2 ๋‚˜๋จธ์ง€์…ˆ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค. image

image

image


์ž„์‹œ๋ณ€์ˆ˜ ์„ ์–ธ: into
๊ทผ๋ฐ ๋งŒ๋“ค์–ด๋‚ธ ๊ทธ๋ฃน์„ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ , ๋ญ”๊ฐ€ ๋” ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋Ÿด ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด into์ธ๋ฐ... ์˜ค๋ฅธ์ชฝ์— ๋‚˜์˜จ ์ด๋ฆ„์œผ๋กœ ๊ฐ ๊ทธ๋ฃน์˜ ์ž„์‹œ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ฒ„๋ฆฐ๋‹ค.
๊ทธ๋ฆฌ๊ณ  select๋Š” ์ด๊ฑธ ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋Š” group into ํ›„ select๋กœ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ–ˆ๋Š”๋ฐ,
ํ‘œํ˜„๋ฒ•๋งŒ ๋‹ฌ๋ผ์ง„ ๊ฑฐ์ง€ ๊ฒฐ๊ณผ๋Š” ์œ„์™€ ๊ฐ™๋‹ค. image

image

image

๊ทธ๋ ‡๋‹ค.