Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LINQ、Select連弾ってやります?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
RyotaMurohoshi
April 11, 2015
Technology
46
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LINQ、Select連弾ってやります?
2015/04/11のJXUG第4回で発表した資料です
RyotaMurohoshi
April 11, 2015
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Tilemapのアップデートについて
ryotamurohoshi
0
85
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
600
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
860
Odin Validationはいいぞ!
ryotamurohoshi
2
1.1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.5k
Unityでも、新しいC#
ryotamurohoshi
0
1.5k
Riderはいいぞ!
ryotamurohoshi
1
3.8k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.7k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Other Decks in Technology
See All in Technology
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
4
1.2k
攻撃者視点で考えるDetection Engineering
cryptopeg
3
1.9k
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
140
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
210
RAG を使わないという選択肢
tatsutaka
1
250
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
140
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.1k
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
230
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
910
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
270
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
240
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
230
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.5k
Thoughts on Productivity
jonyablonski
76
5.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
BBQ
matthewcrist
89
10k
WENDY [Excerpt]
tessaabrams
11
38k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
LINQɺSelect࿈ͬͯΓ·͢ʁ ʲreferencesourceʳ ྄ࣨଠ 2015/04/11())ୈ4ճ)Japan)Xamarin)User)Group)Conference
͍͢·ͤΜ
Xamarin.iOSͱXamarin.Androidͷ
͠·ͤΜʂ
͓લͩΕΑʁ • ໊લ":"྄ࣨଠ • ࣄ":"UnityͰήʔϜ։ൃ • Twi+er":"@RyotaMurohoshi • ߘઌ":"h+p:/ /qiita.com/RyotaMurohoshi
UnityΫϥελ͔Βདྷ·ͨ͠ʂ
ʮUnityͩͱLINQ͕݁ߏམͪͯਏ͍Αʂʯ ͍ͬͯ͏LTΛҎલͨ͠ऀͰ͢ɻ JXUGͷษڧձͰɺ͜ΜͳΛ͍͍ͤͯͨͩͯ͋͞Γ͕ͱ͏͍͟͝·͢ɻ
ͱ͍͏͜ͱͰࠓ Xamarin.iOSXamarin.Android ͷ͠·ͤΜɻ
ͯ͞ɺLINQ࠷ߴͰ͢ΑͶ
લ͓͍͍ͤͯͨͩͨ͞௨Γ Unityͩͱ݁ߏLINQ͕མͪ·ͨ͠ ݪҼAOTίϯύΠϥؔ࿈ͷΤϥʔɻԿ͕ਏ͍ͬͯiOS͚ͩམͪΔ
ͭΒ͍
ͳͷͰ࡞Γ·ͨ͠ɻ ʮUniLinqʯͱ͍͏ɺUnityͰ͑Δ LINQޓϥΠϒϥϦ(β)
UniLinqmono/monoͷLINQͷίʔυ Λϕʔεʹ͍͔ͭ͘खΛՃ͑࡞Γ·ͨ͠ UnityͷUnity&Technologies/monoͷLINQͷίʔυͱൺ AOTίϯύΠϧؔ࿈Τϥʔରࡦ͕͔ͳΓ͞Ε͍ͯ·ͨ͠
ͯ͞ɺ͜͜·ͰલৼΓͰ͢
͋Δɺࣄ͕݅ى͖·ͨ͠
ʮ͋ΕɺmonoͷϦϙδτϦʹ LINQ%to%Objectsͷίʔυ͕ͳ͍ʯ h"ps:/ /github.com/mono/mono/blob/master/mcs/class/System.Core/System.Linq/Enumerable.cs
ͳɺΜͩͱɽɽɽɽ
ຊͷλΠτϧ
LINQɺSelect࿈ͬͯΓ·͢ʁ ʲreferencesourceʳ
referencesource
referencesource
referencesource
ͦ͏Ͱ͢ͶɻLINQͷίʔυɺ referencesourceʹஔ͖ΘͬͨΜͰ͢Ͷ issueίνϥ%h'ps:/ /github.com/mono/mono/pull/1477ɹ
referencesource h"ps:/ /github.com/Microso2/referencesource h"p:/ /www.mono+project.com/docs/about+mono/dotnet+integra8on/
referencesourceͷLINQͷίʔυɺ ͱͯݟ͍ͯͯ໘ന͍Ͱ͢ɻྫ͑ɺWhereͱSelectͷ࿈
ಡΈͣΒ͘ͳ͍Ͱ͔͢ʁ List<A> aList = LoadList (); IEnumerable<D> dList = aList
.Select (a => CovetCtoD( CovetBtoC( ConvertAtoB( a ) ) ) );
ͬͪ͜ͷํ͕͖Ͱ͢ɻ࿈ʂ List<A> aList = LoadList (); IEnumerable<D> dList = aList
.Select (a => CovetAtoB(a)) .Select (b => CovetBtoC(b)) .Select (c => CovetCtoD(c));
͜͏ॻ͚·͢Ͷɺ࿈ʂ List<A> aList = LoadList (); IEnumerable<D> dList = aList
.Select (CovetAtoB) .Select (CovetBtoC) .Select (CovetCtoD);
ΦʔόʔϔουؾʹͳΓ·͢ʁ referencesource൛Ͱରࡦ͞Ε͍ͯ·͢ʂ
Whereͱ͔SelectΛޮΑ͘ΔͨΊʹ EnumerableΫϥεʹ෦Ϋϥε܈͕ఆٛ͞Ε͍ͯΔ • WhereSelectEnumerableIterator • WhereSelectArrayIterator • WhereSelectListIterator ͳͲ
Έͳ͞ΜͳΒɺଟίʔυݟͨํ͕ૣ͍Ͱ͢ h"ps:/ /github.com/Microso2/referencesource/blob/master/System.Core/System/Linq/Enumerable.cs ɹ ͋ͱɺneue͞Μ͕ͱͬͯΘ͔Γ͘͢·ͱΊΒΕ͍ͯ·͢ h"p:/ /www.slideshare.net/neuecc/an3internal3of3linq3to3objects329200657
͓ଋ Xamarin͍͍ͳ͊ʙ Unityʹૣ͘དྷͳ͍͔ͳ͊ʙ
·ͱΊ • monoͷίʔυɺreferencesourceΛΨϯΨϯ׆༻͍ͯ͠·͢Ͷ • referencesourceͷLINQͷίʔυ໘ന͍Ͱ͢Α • WhereSelectͷ࿈ɺಡΈ͚͢Ε͍͍ͬͯͱࢥ͍·͢
ऄ Unityʹ৽ొͨ͠IL2CPPͰɺUniLinq͍Βͳ͍ࢠʁ