LINQ
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Language-Integrated Query ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ Π΄Π°Π½Π½ΡΡ . Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IEnumerable (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΌΠ°ΡΡΠΈΠ²Ρ), Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ DataSet, Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ XML ΠΈ Ρ.Π΄. ΠΠΎ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° LINQ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . LINQ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ Π² Π½ΡΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ using System.Linq;
LINQ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ: Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ:
Π―Π Π½Π΅ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΡΠΏΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ
IDE Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΡΠ΄Π° Π²ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ
ΠΡΠΈΠ²ΡΡΠ½Π΅Π΅ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅ΠΏΠΎΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅
ΠΠ°ΠΏΡΠΎΡΡ LINQ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΈΠ΄Π΅ IEnumerable Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ»ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ . IEnumerable Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π² foreach, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π΅Π³ΠΎ Π½Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΎΠ½Π° Π½ΡΠΆΠ½Π°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ², ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ LINQ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ LINQ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Π½Π΅ ΡΠ°ΡΡΠΎ. Π Update/FixedUpdate ΠΈΠ»ΠΈ ΡΠΈΠΊΠ»Π°Ρ Π»ΡΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΡΡΠ°Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Ρ ΡΠ΅Π»ΡΡ Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Last updated