ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ05·î08Æü(·î) 20:41:44ÍúÎò
¡¡ÍÍ¡¹¤Ê³èÍÑÊýË¡¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¼ÂÁõÎã¤òÄ󼨤·¤Þ¤¹¡£
¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ÎÍý²ò¤¬Æñ¤·¤¤¥Ý¥¤¥ó¥È¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤¬¡¢£²ÅÀÈ´¿è¤·¤Þ¤¹¡£
¡¡¡¦¡Ö¥é¥à¥À¼°¤Ï¡¢²¿¤ò¾Êά¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤«¤¬Ê¬¤«¤ê¤Å¤é¤¤¡×¡¡¢ª¡¡¥á¥½¥Ã¥É¤ò¾Êά¤·¤Æ½ñ¤¤¤Æ¤¤¤ë´¶³Ð¤¬À¸¤Þ¤ì¤Ê¤¤ ¡¡¡¦¡Ö¼ÂÁ©¤¹¤ë¤È¤¤Ë¾¤ÎÍ×ÁǤÎÍý²ò¤òµá¤á¤é¤ì¤ë¡×¡¡¢ª¡¡Íý²ò¤·¤Ê¤¬¤é¼ÂÁ©¤¹¤ë¤³¤È¤¬¤à¤º¤«¤·¤¤
¡¡¤¿¤È¤¨¤Ð¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Ø¤ÎÍý²ò¤¬Ìµ¤¤¤Þ¤Þ¥é¥à¥À¼°¤òÆþ¤ì¤Æ¤â¡¢¥é¥à¥À¼°¤Ç¥á¥½¥Ã¥É¤òÅϤ·¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Å¤é¤¤¤Ç¤¹¤·¡¢
ξÊý¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤ë LINQ ¤Ë¤·¤Æ¤â¡¢ÆâÉô½èÍý¤¬Ê¬¤«¤ê¤Å¤é¤¤¤Ç¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¤³¤³¤Ç¤Ï¶ñÂÎŪ¤Ê³èÍÑ»öÎã¤òÄ󼨤·¤¿¾å¤Ç¡¢¾¯¤·¤Ç¤âÍý²ò¤Î¤ªÌò¤ËΩ¤Æ¤ë¤è¤¦¤Ëµ»ö¤òºîÀ®¤·¤Þ¤¹¡£
¡¡C#¤Ç¤Ï¡¢LINQ (Language Integrated Query)¤È¤¤¤¦µ¡Ç½¤ò»ÈÍѤ·¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¥ê¥¹¥È¤äÇÛÎó¤Ê¤É¤Î¥Ç¡¼¥¿¹½Â¤¤ËÂФ·¤Æ¥¯¥¨¥êÁàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¯¥¨¥ê¤È¤Ï¡¢Ãµ¤·¤¿¤¤¥Ç¡¼¥¿¤Î¸¡º÷¤ä¹¹¿·¡¢ºï½ü¡¢Ãê½Ð¤Ê¤É¤ÎÍ׵᤹¤ëÌ¿Îá¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¡¡LINQ¤Ï¡¢¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ÈÏ¢·È¤·¤Æ¡¢¥Ç¡¼¥¿¤ÎÁàºî¤ò´Ê·é¤ÇÆÉ¤ß¤ä¤¹¤¤·Á¼°¤Çµ½Ò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥ê¥¹¥È¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
¡¡¤³¤Î¥ê¥¹¥È¤«¤é¡¢¶ö¿ô¤À¤±¤òÃê½Ð¤¹¤ë¾ì¹ç¡¢LINQ ¤Î Where ¥á¥½¥Ã¥É¤È¥é¥à¥À¼°¤ò»ÈÍѤ·¤Æ¼¡¤Î¤è¤¦¤Ëµ½Ò¤Ç¤¤Þ¤¹¡£
var evenNumbers = numbers.Where(n => n % 2 == 0);
¡¡¤Þ¤¿¡¢¥ê¥¹¥ÈÆâ¤Î¿ôÃͤò£²Çܤ·¤¿¿·¤·¤¤¥ê¥¹¥È¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢L
INQ ¤Î Select ¥á¥½¥Ã¥É¤ò³èÍѤ¹¤ë¤³¤È¤Ç¼Â¸½¤Ç¤¤Þ¤¹¡£
var doubledNumbers = numbers.Select(n => n * 2);
¡¡¥é¥à¥À¼°¤ò»ÈÍѤ·¤Æ¡¢Áàºî¤Î¾ò·ï¤äÊÑ´¹½èÍý¤ò´Ê·é¤Ëµ½Ò¤¹¤ëÊýË¡¤òÄ󼨤·¤Þ¤·¤¿¡£
¤³¤ì¤Ë¤è¤ê¡¢¥Ç¡¼¥¿¤ÎÁàºî¤¬¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡°Ê²¼¤Ï¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤¹¡£
using System; using System.Collections.Generic; using System.Linq; using UnityEngine; public class LambdaExample : MonoBehaviour { [Serializable] public class Item { public string Name; public int Value; } [SerializeField] private List<Item> items; private void Start() { // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Value ¤¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ëLINQ¥¯¥¨¥ê¤òÄêµÁ¤·¤Þ¤¹ var expensiveItems = items.Where(item => item.Value >= 10); // ·ë²Ì¤òɽ¼¨¤·¤Þ¤¹ Debug.Log("Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à:"); foreach (var expensiveItem in expensiveItems) { Debug.Log($"¥¢¥¤¥Æ¥à̾: {expensiveItem.Name}, ÃÍ: {expensiveItem.Value}"); } } }
¡¡Unity¤ÎMonoBehaviour¤ò·Ñ¾µ¤·¤¿LambdaExample¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
Item¥¯¥é¥¹¤Ï¡¢¥¢¥¤¥Æ¥à¤Î̾Á°¤ÈÃͤò»ý¤Ä¥·¥ó¥×¥ë¤Ê¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£
¡¡Start¥á¥½¥Ã¥ÉÆâ¤Ç¡¢¥é¥à¥À¼°item => item.Value >= 10¤ò»È¤Ã¤Æ¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ëLINQ¥¯¥¨¥ê¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡¢·ë²Ì¤òUnity¤Î¥Ç¥Ð¥Ã¥°¥í¥°¤Ëɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Item¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥Èitems¤Ï¡¢Unity¥¨¥Ç¥£¥¿¾å¤ÇÊÔ½¸¤·¤ÆÃͤòÀßÄê¤Ç¤¤Þ¤¹¡£
¤³¤Î¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤¬¥í¥°¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
¡¡°Ê²¼¤Ï¡¢DOTween¤È¥é¥à¥À¼°¤ò³èÍѤ·¤Æ¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°Üư¤µ¤»¤¿¸å¤Ë¥¹¥±¡¼¥ë¤òÊѹ¹¤¹¤ëÎã¤Ç¤¹¡£
using DG.Tweening; void MoveAndScaleObject() { transform.DOMove(new Vector3(5, 0, 0), 1f) ¡¡¡¡¡¡¡¡.OnComplete(() => ¡¡¡¡¡¡¡¡{ ¡¡¡¡Debug.Log("Move Complete!"); ¡¡¡¡transform.DOScale(new Vector3(2, 2, 2), 1f) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.OnComplete(() => Debug.Log("Scale Complete!")); ¡¡¡¡}); }
¡¡¾åµ¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°Üư¤µ¤»¤¿¸å¡¢OnComplete¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¥¹¥±¡¼¥ë¤òÊѹ¹¤¹¤ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¡¢¥é¥à¥À¼°¤ò»È¤Ã¤Æ¥Ç¥ê¥²¡¼¥È¤ò´Ê·é¤Ëɽ¸½¤¹¤ë¤³¤È¤Ç¡¢Ê£»¨¤Ê¥¢¥Ë¥á¡¼¥·¥ç¥ó½èÍý¤â¤ï¤«¤ê¤ä¤¹¤¯µ½Ò¤Ç¤¤Þ¤¹¡£
¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ÎÄêµÁ¤Ë¤â³èÍѤǤ¤Þ¤¹¡£
¡¡¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Ï¡¢ÆÃÄê¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤È¤¤Ë¼Â¹Ô¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ò´Ê·é¤ËÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤òÄêµÁ¤¹¤ë¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥é¥à¥À¼°¤ò»ÈÍѤǤ¤Þ¤¹¡£
using UnityEngine; using UnityEngine.UI; public class ButtonClickHandler : MonoBehaviour { [SerializeField] private Button myButton; private void Start() { myButton.onClick.AddListener(() => { // ¥Ü¥¿¥ó¤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤È¤¤Î½èÍý Debug.Log("¥Ü¥¿¥ó¤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤Þ¤·¤¿"); }); } }
¡¡¤³¤ÎÎã¤Ç¤Ï¡¢¥é¥à¥À¼°¤Îº¸Â¦¤Î()¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Î°ú¿ô¤òɽ¤·¤Þ¤¹¡£
±¦Â¦¤Î{}¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ÎËÜÂΤǡ¢¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë½èÍý¤òµ½Ò¤·¤Þ¤¹¡£
¡¡¹â³¬´Ø¿ô¤Ï¡¢´Ø¿ô¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤ê¡¢¤Þ¤¿¤Ï´Ø¿ô¤òÌá¤êÃͤȤ·¤ÆÊÖ¤¹´Ø¿ô¤Ç¤¹¡£
¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¹â³¬´Ø¿ô¤ò´Êñ¤Ë¼ÂÁõ¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢¥ê¥¹¥È¤ËÂФ·¤Æ¡¢ÆÃÄê¤Î¾ò·ï¤Ë°ìÃפ¹¤ëÍ×ÁǤò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë´Ø¿ô¤òºîÀ®¤¹¤ë¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥é¥à¥À¼°¤ò»ÈÍѤǤ¤Þ¤¹¡£
List<int> Filter(List<int> list, Predicate<int> predicate) { List<int> result = new List<int>(); foreach (var item in list) { if (predicate(item)) { result.Add(item); } } return result; }
¡¡¤³¤Î´Ø¿ô¤Ï¡¢list¤È¤¤¤¦¥ê¥¹¥È¤È¡¢predicate¤È¤¤¤¦¾ò·ï¤òɽ¤¹(½Ò¸ì)¥Ç¥ê¥²¡¼¥È¤ò°ú¿ô¤Ë¼è¤ê¤Þ¤¹¡£
¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; List<int> evenNumbers = Filter(numbers, n => n % 2 == 0);
¡¡¤³¤ÎÎã¤Ç¤Ï¡¢n => n % 2 == 0¤È¤¤¤¦¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¶ö¿ô¤òȽÄꤹ¤ë¾ò·ï¤òɽ¸½¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Â¾¤Ë¤â¿§¡¹¤Ê¾ì½ê¤Ç¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ë¤è¤ëµ½Ò¤Ï³èÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¥é¥à¥À¼°¤Ï¡¢¥³¡¼¥É¤ò´Ê·é¤Ë¤·¡¢²ÄÆÉÀ¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤ËÌòΩ¤Á¤Þ¤¹¡£
¤¿¤À¤·¡¢Å¬Àڤ˻ÈÍѤ·¤Ê¤¤¤È¡¢µÕ¤Ë¥³¡¼¥É¤Î²ÄÆÉÀ¤¬Äã²¼¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¡¡°Ê²¼¤Ï¡¢¥é¥à¥À¼°¤ÎÍøÅÀ¤ÈÃí°ÕÅÀ¤Ç¤¹¡£
¡¡¡¦¥³¡¼¥É¤¬´Ê·é¤Ë¤Ê¤ê¡¢²ÄÆÉÀ¤¬¸þ¾å¤¹¤ë¡£ ¡¡¡¦Ì¾Á°¤Î¤Ê¤¤Æ¿Ì¾´Ø¿ô¤òºîÀ®¤Ç¤¤ë¤¿¤á¡¢°ìÅÙ¤·¤«»ÈÍѤ·¤Ê¤¤½èÍý¤òµ½Ò¤¹¤ëºÝ¤ËÊØÍø¡£ ¡¡¡¦¹â³¬´Ø¿ô¤äLINQ¤ÈÏ¢·È¤·¤Æ¡¢¥Ç¡¼¥¿¤ÎÁàºî¤ò¸úΨŪ¤Ëµ½Ò¤Ç¤¤ë¡£
¡¡¡¦¥é¥à¥À¼°¤¬Ê£»¨¤Ë¤Ê¤ê¤¹¤®¤ë¤È¡¢¥³¡¼¥É¤Î²ÄÆÉÀ¤¬Äã²¼¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¡£ ¡¡¡¦¥é¥à¥À¼°Æâ¤Ç³°ÉôÊÑ¿ô¤ò¥¥ã¥×¥Á¥ã¤¹¤ë¾ì¹ç¡¢ÉûºîÍѤä¥ê¥½¡¼¥¹¥ê¡¼¥¯¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡£
¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ï¡¢C#¥×¥í¥°¥é¥à¤Ç¥á¥½¥Ã¥É¤ò°·¤¦ºÝ¤Î¶¯ÎϤʥġ¼¥ë¤Ç¤¹¡£
¤³¤ì¤é¤ò»È¤Ã¤Æ¥³¡¼¥É¤ò¥·¥ó¥×¥ë¤Ë¤·¡¢ÆÉ¤ß¤ä¤¹¤¯¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Î´Ø·¸¤òÍý²ò¤·¡¢´ðËÜŪ¤Ê½èÍý¤ÎÆÉ¤ß²ò¤Êý¤òÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢
¤è¤ê¸úΨŪ¤Ç½ÀÆð¤Ê¥×¥í¥°¥é¥ß¥ó¥°¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ºÇ¸å¤ËLINQ¤È¹â³¬´Ø¿ô¤òÍøÍѤ·¤¿¥Õ¥£¥ë¥¿¥ê¥ó¥°½èÍý¤Î¼ÂÁõÎã¤òÄ󼨤·¤Þ¤¹¡£
using System; using System.Collections.Generic; using System.Linq; using UnityEngine; public class FilterExample : MonoBehaviour { [Serializable] public class Item { public string Name; public int Value; } public delegate bool ItemCondition(Item item); [SerializeField] private List<Item> items; private List<Item> FilterItems(ItemCondition condition) { return items.Where(condition).ToList(); } private void ShowItems(string message, List<Item> filteredItems) { Debug.Log(message); foreach (var item in filteredItems) { Debug.Log($"¥¢¥¤¥Æ¥à̾: {item.Name}, ÃÍ: {item.Value}"); } } private void Start() { // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë List<Item> expensiveItems = FilterItems(item => item.Value >= 10); ShowItems("Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à:", expensiveItems); // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Ì¾Á°¤¬ "A" ¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë List<Item> itemsStartingWithA = FilterItems(item => item.Name.StartsWith("A")); ShowItems("̾Á°¤¬A¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à:", itemsStartingWithA); } }
¡¡¤³¤Î¥³¡¼¥ÉÎã¤Ç¤Ï¡¢ItemCondition¥Ç¥ê¥²¡¼¥È¤ÈFilterItems¹â³¬´Ø¿ô¤ò»ÈÍѤ·¤Æ¡¢
Start¥á¥½¥Ã¥ÉÆâ¤Ç¡¢FilterItems¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ°Û¤Ê¤ë¾ò·ï¤Ç¥¢¥¤¥Æ¥à¤ò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¡¢¤½¤Î·ë²Ì¤òɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤º¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤·¡¢¼¡¤Ë̾Á°¤¬ "A" ¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à¤ò¸¡º÷¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤Þ¤º¡¢Item¥¯¥é¥¹¤ËÂФ¹¤ë¾ò·ï¤òɽ¤¹¥Ç¥ê¥²¡¼¥ÈItemCondition¤òÄêµÁ¤·¤Þ¤¹¡£
public delegate bool ItemCondition(Item item);
¡¡¼¡¤Ë¡¢ItemCondition¥Ç¥ê¥²¡¼¥È¤ò°ú¿ô¤Ë¤È¤ë¹â³¬´Ø¿ôFilterItems¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¾ò·ï¤òËþ¤¿¤¹¥¢¥¤¥Æ¥à¤ò´Þ¤à¿·¤·¤¤¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£
private List<Item> FilterItems(ItemCondition condition) { return items.Where(condition).ToList(); }
¡¡¤³¤Î condition °ú¿ô¤Ë¤Ï¥é¥à¥À¼°¤ÇºîÀ®¤µ¤ì¤¿Æ¿Ì¾¥á¥½¥Ã¥É¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢Start ¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë²¼µ¤Î¥é¥à¥À¼°¤Ï¡¢¥Ç¥ê¥²¡¼¥È ItemCondition ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
List<Item> expensiveItems = FilterItems(item => item.Value >= 10);
¡¡¥é¥à¥À¼°¤Ï¡¢FilterItems ¥á¥½¥Ã¥É¤Î°ú¿ô¤Î item => item.Value >= 10 ¤ÎÉôʬ¤Ç¤¹¡£
Item ·¿¤Î item ¤ò°ú¿ô¤Ë¤È¤ê¡¢item.Value >= 10 ¤òɾ²Á¤·¤Æ¿¿µ¶ÃͤòÊÖ¤¹¥á¥½¥Ã¥É¤òɽ¸½¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¤³¤Îƿ̾¥á¥½¥Ã¥É¤Ë¤è¤ëÆâÍÆ¤¬¡¢FilterItems ¹â³¬´Ø¿ô¤ËÍѰդµ¤ì¤Æ¤¤¤ë¥Ç¥ê¥²¡¼¥È ItemCondition ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡FilterItems ¥á¥½¥Ã¥ÉÆâ¤Ç items.Where(condition).ToList(); ¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢
¤³¤Î¥é¥à¥À¼°(º£²ó¤Ç¤¢¤ì¤Ð item => item.Value >= 10)¤¬ÂåÆþ¤µ¤ì¤¿ ItemCondition ¥Ç¥ê¥²¡¼¥È condition ¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£
private List<Item> FilterItems(ItemCondition condition) //¡¡condition ¤ÎÃÍ¤Ï item => item.Value >= 10 { return items.Where(condition).ToList();¡¡¡¡// Where(condition) ¥á¥½¥Ã¥É¤Ï¡¢Where(item => item.Value >= 10) ¤ò¹Ô¤Ã¤Æ¤¤¤ë }
¡¡¤Ä¤Þ¤ê¡¢¥Õ¥£¥ë¥¿¡¼½èÍý¤ò¹Ô¤¦ºÝ¤Î¾ò·ïÉôʬ¤Ë¡Ö¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¡×¤ò³èÍѤ¹¤ë¤³¤È¤Ç¡¢
¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë¾ò·ï¤¬¤½¤ÎÅÔÅÙÊѲ½¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°ÍѤΥ᥽¥Ã¥É¤òÊ£¿ôÍѰդ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£
¡¡¤½¤Î¤¿¤á¡¢¤è¤êÃê¾Ý²½¤·¤¿½èÍý¤òºîÀ®¤·¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¹â³¬´Ø¿ô¤ò»È¤Ã¤Æ¼ÂÁõ¤ò¹Ô¤¦¤³¤È¤Ç¡¢ÆÃÄê¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë¡¢¤È¤¤¤¦½èÍý¤ò¸úΨŪ¡¦Ãê¾ÝŪ¤Ê·Á¤Ç¼ÂÁõ¤·¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¥³¡¼¥É¤¬¤è¤ê½ÀÆð¤ÇºÆÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¤·¡¢°Û¤Ê¤ë¾ò·ï¤ò´Êñ¤ËÄɲá¦Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯