10 рдорд┐рдирдЯ рдореЗрдВ ╨бoncurrent рд╕рдВрдЧреНрд░рд╣

рдЫрд╡рд┐
рд░реЙрдмрд░реНрдЯ рд╡реАред рд░рдЧреНрдЧрд┐рдПрд░реЛ рджреНрд╡рд╛рд░рд╛ рдлреЛрдЯреЛ

рд╡рд┐рд╖рдп рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдкреВрдЫрддреЗ рд╣реБрдП рдХрд┐ "рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ?" рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдпрд╛ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд╛рдХреНрдп рд╕реЗ рдпреБрдХреНрдд рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ: "рд╡реЗ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рддрд┐ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВ" (рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рднреА рдЕрд╕рдВрднрд╡ рд╣реИ)ред рдпрд╛: "рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЧреНрд░рд╣ рдХреА рддрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрджрд░ рд╕рдм рдХреБрдЫ рддрд╛рд▓реЗ рдкрд░ рд╣реИ", рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рд╖рдп рдХреЛ 10 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддреНрд╡рд░рд┐рдд рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдпрд╛ рдЗрдВрдЯрд░рд╡реНрдпреВ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рдпрд╛рджрджрд╛рд╢реНрдд рдХреЛ рддрд╛рдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо System.Collections.Concurrent рдирд╛рдо рд╕реНрдерд╛рди рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗред рдлрд┐рд░ рд╣рдо рд╕рдорд╡рд░реНрддреА рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рдиреБрдХрд╕рд╛рди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдм рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛрддреЗ рд╣реИрдВред

System.Collections.Concurrent рдореЗрдВ рдХреНрдпрд╛ рд╣реИ


Intellisense рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрддрд╛рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред

рд╕рдорд╡рд░реНрддреА : рдПрдХ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд, рд╕рд╛рдорд╛рдиреНрдп-рдкреНрд░рдпреЛрдЬрди рд╕рдВрдЧреНрд░рд╣ рдЬреЛ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдХреЙрдирдХреЙрдиреНрдЯреНрд░реИрдмреИрдЧ, рдХреЙрдирдХреЙрдиреНрдЯреНрд░реИрдХрд╕реНрдЯреИрдХ, рдХреЙрдирдХреЙрдиреНрдЯреНрд░реИрдХ рдХреНрдпреВ : рд╕реНрдкреЗрд╢рд▓ рдкрд░реНрдкрд╕ рдХрд▓реЗрдХреНрд╢рдВрд╕ред "рд╡рд┐рд╢реЗрд╖рддрд╛" рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдПрдХ рдордирдорд╛рдирд╛ рддрддреНрд╡ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рдХрдореА
  • рдвреЗрд░ рдФрд░ рдХрддрд╛рд░ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ) рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрд░рдо рд╣реИ
  • рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рд╕рдорд╡рд░реНрддреАрдмрд╛рдЧ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрдбрд╝реЛрд╕реА рд╕реНрдЯреНрд░реАрдо рд╕реЗ "рдЪреЛрд░реА" рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдЦрд╛рд▓реА рд╣реИ

IProducerConsumerCollection - BlockingCollection рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрдмрдВрдз (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред ConcurrentStack , ConcurrentQueue, рдФрд░ ConcurrentBag рд╕рдВрдЧреНрд░рд╣ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

BlockingCollection - рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреБрдЫ рдзрд╛рд░рд╛рдПрдВ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рднрд░рддреА рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдЗрд╕рдореЗрдВ рд╕реЗ рддрддреНрд╡ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдПрдХ рднрд░рдкрд╛рдИ рдХрд╛рд░реНрдп рдХрддрд╛рд░ рд╣реИред рдпрджрд┐ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдордп рд╕рдВрдЧреНрд░рд╣ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдкрд╛рдардХ рдирдП рддрддреНрд╡ (рдорддрджрд╛рди) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрдкреНрд▓реАрдЯ рдПрдбрд┐рдВрдЧ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдпрд╣ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдЕрдм рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рддрдм рдЬрдм рд░реАрдбрд┐рдВрдЧ рдорддрджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк IsAddingCompleted рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЕрдм рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛) рдФрд░ IsCompleted ( рд╕рдЪ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЕрдм рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдЦрд╛рд▓реА рд╣реИ) рдЧреБрдгред

рдкрд╛рд░реНрдЯреАрд╢рдирд░, рдСрд░реНрдбрд░реЗрдмрд▓рдкрд╛рд░реНрдЯрд┐рд╢рдирд░, рдПрдиреБрдореЗрд░рдмрд▓рдкрд╛рд░реНрдЯрд┐рд╢рдирд░рдСрдХреНрд╢рдВрд╕ - рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдирд┐рд░реНрдорд╛рдгред Parallel.ForEach рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдЖрдЗрдЯрдо рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВред

рдмрд╛рдж рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ: рд╕рдорд╡рд░реНрддреА рдФрд░ рд╕рдорд╡рд░реНрддреАрдмрд╛рдЧ / рдвреЗрд░ / рдХрддрд╛рд░ ред

рд╕рдорд╡рд░реНрддреА рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░


рдЖрдВрддрд░рд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдХрд╛ рд╕рдВрд░рдХреНрд╖рдг


рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рддрд░реАрдХреЗ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Dictionary.Add рд╡рд┐рдзрд┐ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ):

if (this._buckets == null) { int prime = HashHelpers.GetPrime(capacity); this._buckets = new int[prime]; this._entries = new Dictionary<TKey, TValue>.Entry[prime]; } 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╢рдмреНрджрдХреЛрд╢ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдирд┐рдореНрди рдкрд░рд┐рджреГрд╢реНрдп рд╕рдВрднрд╡ рд╣реИ:

  1. рдереНрд░реЗрдб 1 рдХреЛ рдРрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
  2. рдереНрд░реЗрдб 2 рдХреЛ рдПрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛, рдЖрдЗрдЯрдо рдХреЛ рдЬреЛрдбрд╝рд╛
  3. рд╕реНрдЯреНрд░реАрдо 1 рдХрд╛рдо рдкрд░ рд▓реМрдЯ рдЖрдпрд╛, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдзрд╛рд░рд╛ 2 рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдирд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ред

рдпрд╣реА рд╣реИ, рдХрдИ рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИрдВред

рдПрдкреАрдЖрдИ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд░рддрд┐ рд╕рд╣рд┐рд╖реНрдгреБ рд╣реИред


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рд╣реА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рджреЛ рдмрд╛рд░ Add рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рджреВрд╕рд░реА рдХреЙрд▓ ArgumentException рдХреЛ рдлреЗрдВрдХ рджреЗрдЧреАред

рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рд▓реЗрдХрд┐рди рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд╣рдо рд╕рдВрдЧреНрд░рд╣ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдирд┐рдореНрди рдЬреИрд╕реЗ рдЪреЗрдХ рд╣рдореЗрдВ рддрднреА рдмрдЪрд╛рддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЦреБрдж рдХреЛ рд▓реЙрдХ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ:

 if (!dictionary.ContainsKey(key)) { dictionary.Add(key, тАЬHelloтАЭ); } 

рдЕрдкрд╡рд╛рдж рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реНрдерд┐рд░, рдЕрдиреБрдорд╛рдирд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдПрдХ рдПрдкреАрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛рдПрдВ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ, рдФрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд░рд╛рдЬреНрдп рдХреА рд╕реНрд╡реАрдХрд╛рд░реНрдпрддрд╛ рдкрд░ рдирд┐рд░реНрдгрдп рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣реЛрдВ рдореЗрдВ, рдЯреНрд░рд╛рдЗрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рдкреИрдЯрд░реНрди рдкрд░ рдПрдкреАрдЖрдИ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдРрдб , рдЧреЗрдЯ рдФрд░ рдирд┐рдХрд╛рд▓реЗрдВ рдХреЗ рдмрдЬрд╛рдп , рд╣рдо TryAdd , TryGetValue рдФрд░ TryRemove рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░, рдЕрдЧрд░ рдпреЗ рддрд░реАрдХреЗ рдЭреВрдареЗ рд╣реИрдВ , рддреЛ рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдЕрдм рд░рд╛рдЬреНрдп-рд╕рд╣рд┐рд╖реНрдгреБ рддрд░реАрдХреЗ рднреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреАрдЖрдИ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реИ, рдФрд░ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред

рдПрдкреАрдЖрдИ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХрдо рд╕реЗ рдХрдо


рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрддреНрд╡ рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 dictionary[key] += 1; 

рдЕрдкрдиреА рд╕рднреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдХреЛрдб рддреАрди рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, 1 рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдирдпрд╛ рдореВрд▓реНрдп рд▓рд┐рдЦрддрд╛ рд╣реИред рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдб рдПрдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдорд╛рди рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдордп рдПрдХ рдФрд░ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдПрдкреАрдЖрдИ рдореЗрдВ рдХрдИ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, TryUpdate рдкрджреНрдзрддрд┐, рдЬреЛ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддреА рд╣реИ: рдХреБрдВрдЬреА, рдирдпрд╛ рдорд╛рди рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд░реНрддрдорд╛рди рдорд╛рдиред рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдореВрд▓реНрдп рдЙрд╕ рдЪреАрдЬ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рддреЛ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╡рд┐рдзрд┐ рдЭреВрдареА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред

рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ ( Console.WriteLine рд╕рд╣рд┐рдд) рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ:

 if (dictionary.ContainsKey(key)) { dictionary[key] += 1; } else { dictionary.Add(key, 1); } Console.WriteLine(dictionary[key]); 

рдореВрд▓реНрдп рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛, рдПрдХ рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╡рд░реНрддреА рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ AddOrUpdate рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рдПрдХ рдХреЙрд▓ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдереНрд░реЗрдб рд╣реИ:

 var result = dictionary.AddOrUpdate(key, 1, (itemKey, itemValue) => itemValue + 1); Console.WriteLine(result); 

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рд▓рд╛рдпрдХ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред

AddOrUpdate рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд TryUpdate рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЕрджреНрдпрддрди рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ (рдкрдбрд╝реЛрд╕реА рдереНрд░реЗрдб рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореВрд▓реНрдп рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ), рддреЛ рдкреНрд░рдпрд╛рд╕ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдЕрдкрдбреЗрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрджреНрдпрддрди рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдкрдбреЗрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдХрдИ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХреЛрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рджрд╛рдиреЗрджрд╛рд░ рддрд╛рд▓реЗ рдХреЛ рд▓реЙрдХ рдХрд░реЗрдВ


рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рди рдХреЗрд╡рд▓ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддрд╛рд▓реЗ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрд╛ред рд╕реНрд░реЛрдд рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдХреЗ рдЖрдк рджрд╛рдиреЗрджрд╛рд░ рддрд╛рд▓реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рдХреНрд╖рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдореЙрдирд┐рдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ "рд▓рд╛рдЗрдЯрд░" рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдХреНрдпрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ


рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рд▓рд╛рдпрдХ рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВред

рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдмрд╣реБрд░реВрдкрддрд╛


рдХреНрд▓рд╛рд╕рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣, IDEDIA , ICollection рдФрд░ IEnumerable рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЛрдбрд╝реЗрдВ рд╡рд┐рдзрд┐, рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдереАред

рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд┐рдирд╛ рдРрд╕реЗ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреАрдЖрдИ рдХреЛ "рдЫрд┐рдкрд╛рдиреЗ" рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ICollectionред

рд╕рд╛рде рд╣реА, рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд▓рд┐рд╕реНрдХреЛрд╡ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рдореНрди рдХреЛрдб рд╕реВрдЪреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ InvalidOperationException рдлреЗрдВрдХ рджреЗрдЧрд╛:

 foreach (var element in list) { list.Remove(element); } 

рдпрджрд┐ рд╣рдо рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧрдгрдирд╛ рдХреЗ рд╕рдордп рд╕рдВрд╢реЛрдзрди рд╕реЗ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рдПрдХ рд╕рд╛рде рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╢реЛрдзрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╡рд░реНрддреА рд╕рд╛рджрдЧреА рдХрд┐рд╕реА рднреА рдЪреЗрдХ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдФрд░ рд╕рдорд╡рд░реНрддреА рд╕реНрдЯреИрдХ / рдХреНрдпреВ / рдмреИрдЧ рддрд╛рд▓реЗ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИред

рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗ


рд╣рдордиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕рдорд╡рд░реНрддреА рдмреИрдЧ рдкрдбрд╝реЛрд╕реА рдзрд╛рдЧреЗ рд╕реЗ "рдЪреЛрд░реА" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рд╕реЗ рд╕рдорд╡рд░реНрддреАрдмрд╛рдЧ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рд╕рдВрдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ ( рдЧрдгрдирд╛ , IsEmpty , GetEnumerator , ToArray , рдЖрджрд┐) рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╕рдордп рднреА, рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдкреВрд░реНрдг рддрд╛рд▓реЗ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдордХрдХреНрд╖реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖: рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрднреА рдЙрдЪрд┐рдд рд╣реИ рдЬрдм рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк "рдореБрдХреНрдд" рдирд╣реАрдВ рд╣реИред

рдХрдм рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


  • рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ: рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ред
  • рдХрдИ рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб: рдХреЗрд╡рд▓ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдкреАрдЖрдИ рд╣реИред
  • рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдкрдврд╝рдирд╛: рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдирд╣реАрдВред рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣ рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдЧрд╣рди рд░рд╛рдЬреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП, Microsoft рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рджрд░реНрд╢рди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд▓рд╕реА рдЧреБрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рд╢реБрд░реВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдкрдврд╝рддреЗ рд╕рдордп рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрд╕рддрди рд╡рд┐рдХрд▓реНрдк рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
  • рдФрд░ рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛: рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣, рджреЛрдиреЛрдВ рд░рд╛рдЬреНрдп рд╕рдВрд░рдХреНрд╖рдг рдФрд░ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдорд╡рд░реНрддреА рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рдХреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд▓реЗрдЦ рд╡рд┐рд╖рдп рдХреЛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд▓реНрдЯреАрдереНрд░реЗрдб рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдЧрдВрднреАрд░ рдХрд╛рдо рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдЧрд╣рд░рд╛ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреЛрдб рдмрд╣реБрдд, рдмрд╣реБрдд рдкрдардиреАрдп рд╣реИред

Source: https://habr.com/ru/post/hi473352/


All Articles