ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ06·î25Æü(Æü) 16:19:57ÍúÎò
¤³¤ì¤òÊ£¿ôºîÀ®¤·¤Æ´ÉÍý¤µ¤»¤ë¤³¤È¤òÌÜŪ¤È¤·¤¿ StagePathData ¥¯¥é¥¹¤È BranchData ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤µ¤é¤Ë¡¢¤½¤Î StagePathData ¥¯¥é¥¹¤ò¤Þ¤È¤á¤Æ¤ª¤¯¤³¤È¤Ç¡¢£±¤Äʬ¤Î¥¹¥Æ¡¼¥¸¤Î¥Ç¡¼¥¿¤È¤·¤Æ³èÍѤ·¤Æ¤¤¤¯À߷פȼÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
ȯŸ£³¡¡¡¼¥¹¥Æ¡¼¥¸¥Ç¡¼¥¿¤ÎºîÀ®¡¼
¡ã³Ø½¬ÆâÍÆ¡ä
¡¡¡¦¥¯¥é¥¹Æâ¤ËÊ̤Υ¯¥é¥¹¤òºîÀ®¤¹¤ë(Æþ¤ì»Ò¥¯¥é¥¹)µ¡Ç½¤ÎÉü½¬ ¡¡¡¦List.Find ¥á¥½¥Ã¥É¡¼
¡¡¼¡¤Î¤è¤¦¤Ê¹½À®¤Ç¥¯¥é¥¹¤ÎÀ߷פò¹Ô¤¤¤Þ¤¹¡£
¡¡StagePathData ¥¯¥é¥¹¤¬Ê£¿ô¤Î BranchData ¥¯¥é¥¹¤ò´ÉÍý¤·¤Þ¤¹¡£
¤³¤Î BranchData ¥¯¥é¥¹¤Ï£±¤Äʬ¤Îʬ´ô¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡BranchData ¥¯¥é¥¹Æâ¤Ë¤ÏÊ£¿ô¤Î RailPathData ¥¯¥é¥¹¤ò´ÉÍý¤·¡¢¤½¤Îʬ´ôÆâ¤Î·ÐÏ©¾ðÊó¤ò´ÉÍý¤·¤Þ¤¹¡£
¡¡StagePathData ¥¯¥é¥¹(¥¹¥Æ¡¼¥¸£±¤Äʬ) | | --------BranchData ¥¯¥é¥¹ | | | | --------RailPathData ¥¯¥é¥¹ | | --------RailPathData ¥¯¥é¥¹ | | --------RailPathData ¥¯¥é¥¹ | | --------Ǥ°Õ¤Î¿ô¤À¤± RailPathData ¥¯¥é¥¹ ¤ò´ÉÍý¤¹¤ë | | |-------- BranchData ¥¯¥é¥¹ | | | |-------- RailPathData ¥¯¥é¥¹ | ¡¡ |-------- RailPathData ¥¯¥é¥¹ | |-------- RailPathData ¥¯¥é¥¹¡¡ | |-------- Ǥ°Õ¤Î¿ô¤À¤± RailPathData ¥¯¥é¥¹ ¤ò´ÉÍý¤¹¤ë | | |-------- BranchData ¥¯¥é¥¹ | | | |-------- RailPathData ¥¯¥é¥¹ | ¡¡ |-------- RailPathData ¥¯¥é¥¹ | |-------- RailPathData ¥¯¥é¥¹¡¡ | |-------- Ǥ°Õ¤Î¿ô¤À¤± RailPathData ¥¯¥é¥¹ ¤ò´ÉÍý¤¹¤ë | |-------- Ǥ°Õ¤Î¿ô¤À¤± BranchData ¥¯¥é¥¹¤ò´ÉÍý¤¹¤ë
¡¡¤³¤Î¥¤¥á¡¼¥¸¤ò˺¤ì¤º¤Ë¡¢¤É¤¦¤¤¤Ã¤¿¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤òǰƬ¤ËÃÖ¤¤Ê¤¬¤é¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤¤¤¤Þ¤¹¡£
¡¡1¤Ä¤Î¥¹¥Æ¡¼¥¸¤Ï¡¢Ê£¿ô¤Î BranchData ¥¯¥é¥¹¤Ë¤è¤Ã¤Æʬ´ô¤¬È¯À¸¤·¡¢¤½¤Î BranchData ¥¯¥é¥¹¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë RailPathData ¤Ë¤è¤Ã¤Æ·ÐÏ©¤¬ÀßÄꤵ¤ì¤ëÀ߷פˤʤäƤ¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¸½ºß¤Î RailPathData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¹Í¤Ë¤·¤Ê¤¬¤é¡¢°Û¤Ê¤ë·ÐÏ©¤ò»ý¤Ä RailPathData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡ºÇÄã¤Ç¤â£²¤Ä°Ê¾å¤Ê¤¤¤È¡¢À衹¤Îʬ´ô¤Î½èÍý¤òºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
ºîÀ®¤·¤¿¤é¡¢¤½¤ì¤é¤ò¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤Æ¡¢¥Ò¥¨¥é¥ë¥¡¼¤«¤é¤Ïºï½ü¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡Ê£¿ô¤Î RailPathData ¤ò´ÉÍý¤·¡¢¤½¤ì¤ò¤Þ¤È¤á¤Æ£±¤Ä¤Î¥¹¥Æ¡¼¥¸¤È¤·¤Æ´ÉÍý¤¹¤ë¤¿¤á¤Ë¡¢¿·¤·¤¯¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÍѤΥ¯¥é¥¹¤È
¤½¤ì¤ò¹½À®¤¹¤ë¤¿¤á¤Î BranchData ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÍѤΥ¯¥é¥¹¤Ï¡¢£±¤Ä¤Î¥¯¥é¥¹Æâ¤ËÆþ¤ì»Ò¥¯¥é¥¹¤òºî¤ê¡¢£±¤Ä¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¤Þ¤È¤á¤ÆÀë¸À¤¹¤ëÊýË¡¤È¡¢
³Æ¥¯¥é¥¹¤´¤È¤Ë¥¹¥¯¥ê¥×¥È¤ò£±¤Ä¤º¤ÄºîÀ®¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¡¡º£²ó¤Ï£±¤Ä¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤ËÆþ¤ì»Ò¥¯¥é¥¹¤ò£²¤ÄºîÀ®¤·¤Æ¤Þ¤È¤á¤ÆÀë¸À¤·¡¢¹ç·×¤Ç£³¤Ä¤Î¥¯¥é¥¹¤ò¤Þ¤È¤á¤Æ¤¤¤Þ¤¹¡£
StagePathDataSO.cs
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡Datas ¥Õ¥©¥ë¥ÀÆâ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => Create StagePathDataSO ¤òÁªÂò¤·¤Æ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¡¢Size ¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤ò 2 °Ê¾å¤ËÀßÄꤷ¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ RailPathData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
BranchDirectionType ¤Ë¤Ïʬ´ô¤¹¤ëÊý¸þ¤òÀßÄꤹ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¸½ºß¤Ï No Branch ¤òÁªÂò¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡¡»²¹ÍÎã

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¿·¤·¤¯ºîÀ®¤·¤¿ StagePathDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥²¡¼¥àÆâ¤ÇÍøÍѤǤ¤ë¤è¤¦¤Ë
DataBaseManager ¤ËÊÑ¿ô¤òÄɲ䷤ƴÉÍý¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¹ç¤ï¤»¤Æ¡¢StagePathDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¾ðÊó¤ò°·¤¤¤ä¤¹¤¯¤¹¤ë¤¿¤á¡¢
»ØÄꤷ¤¿¾ðÊó¤òÃê½Ð¤·¤ÆÄ󶡤Ǥ¤ë¤è¤¦¤Ë¡¢Ìá¤êÃͤΤ¢¤ë¥²¥Ã¥¿¡¼¥á¥½¥Ã¥É¤ò£µ¤ÄºîÀ®¤·¤Æ¤ª¤¤Þ¤¹¡£
¡¡³Æ¥á¥½¥Ã¥ÉÆâ¤Ç¤Ï¡¢StagePathDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¤ÎÃê½Ð½èÍý¤Ê¤É¤¬¥á¥½¥Ã¥Éñ°Ì¤Ç¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢¤½¤ÎÃæ¤Ç¤Ï System.Linq ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤Æ¤¤¤ëÉôʬ¤¬¤¢¤ë¤¿¤á¡¢using ¤ËÀë¸À¤ÎÄɲäò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
ÍøÍѤ·¤Æ¤¤¤ë Select ¥á¥½¥Ã¥É¤È ToArray ¥á¥½¥Ã¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼ê½ç£¸¤Ë¤Æ¡¢¤¹¤Ç¤Ë³Ø½¬ºÑ¤Ç¤¹¡£Éü½¬¤È¤·¤Æ¡¢¤·¤Ã¤«¤ê¤ÈÍý²ò¤ò¿¼¤á¤Æ¤¯¤À¤µ¤¤¡£
¡¡List ÆâÉô¾ðÊó¤Î»²¾È¤Î»ÅÊý¤äÃê½Ð¤Î»ÅÊý¤Î¿¤¯¤Ï¡¢Â¾¤Î List ¤Ç¤â±þÍѤ¬Íø¤¯ÆâÍƤˤʤäƤ¤¤Þ¤¹¡£
¤½¤Î¤¿¤á½èÍý¤ÎÆâÍƤò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤«¤é³Ø½¬¤ò¿Ê¤á¤Æ¤¤¤¯¤³¤È¤ò¶¯¤¯¤ª´«¤á¤·¤Þ¤¹¡£
List ¤Ïºî¤Ã¤¿¤ê¡¢ÃͤòÄɲ䷤Ƥ¤¤ë¤À¤±¤Ç¤Ï³èÍѽÐÍè¤Þ¤»¤ó¡£List ¤ÎÆâÉô¾ðÊó¤ËÂФ·¤Æ¤ÎÃê½Ð½èÍý¤ä¸¡º÷½èÍý¤È¤¤¤Ã¤¿¥¢¥¯¥»¥¹¤ÎÊýË¡¤ò³Ð¤¨¤Æ¤Ï¤¸¤á¤ÆÌòΩ¤Á¤Þ¤¹¡£
DataBaseManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡List¤Ë¤Ï Find ¤È¤¤¤¦¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡£
List Æâ¤ÎÍ×ÁǤòÀèƬ¤«¤é¸¡º÷¤·¤Æ¡¢»ØÄꤷ¤¿¾ò·ï¤Ë¹çÃפ·¤¿ºÇ½é¤ÎÍ×ÁÇ£±¤Ä¤ò¼è¤ê½Ð¤·¤ÆÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Æ¤¯¤ì¤ë½èÍý¤Ç¤¹¡£
Find ¥á¥½¥Ã¥É¤Ï foreach ʸ¤Çµ½Ò¤¹¤ëÆâÍƤÈƱ¤¸½èÍý¤ò£±¹Ô¤Ç½èÍý¤Ç¤¤Þ¤¹¡£
Find ¤Î¾ì¹ç
public RailPathData GetRailPathDatasFromBranchNo(int nextStagePathDataNo, BranchDirectionType searchBranchDirectionType) { return stagePathDataSO.stagePathDatasList[nextStagePathDataNo].branchDatasList.Find(x => x.branchDirectionType == searchBranchDirectionType).railPathData; }
foreach ¤ÇƱ¤¸½èÍý¤ò½ñ¤¤¤¿¾ì¹ç
foreach (BranchData data in stagePathDataSO.stagePathDatasList[nextStagePathDataNo].branchDatasList) { if (data.branchDirectionType == searchBranchDirectionType) { return data.railPathData; } }
¡¡¤³¤Î£²¤Ä¤Î½èÍý¤ÏƱ¤¸ÆâÍƤˤʤê¤Þ¤¹¡£
ºÇ½é¤Ë¹çÃפ·¤¿Ãͤ¬Âоݤˤʤê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤È¤á¤ÆÊ£¿ô¼èÆÀ¤·¤¿¤¤¾ì¹ç¤ä¡¢¹çÃפ¹¤ë¾ò·ï¤òËþ¤¿¤¹Í×ÁǤ¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤Î½èÍý¤À¤±¤Ç¤Ï¼ÂÁõ¤Ç¤¤Þ¤»¤ó¡£
»²¹Í¥µ¥¤¥È
Samurai BlogÍÍ
¡ÚC#ÆþÌç¡ÛList¤ÎÍ×ÁǤò¸¡º÷¤¹¤ëFind¤Î»È¤¤Êý(FindAll/FindIndex)
https://www.sejuku.net/blog/45252
¡¡DataBaseManager ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¿·¤·¤¤ÊÑ¿ô¤òÄɲä·¤¿¤Î¤Ç¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é³Îǧ¤·¤ÆÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
ÂоݤÎÊÑ¿ô¤Ë Datas ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë StagePathDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¤³¤³¤Þ¤Ç¤Î¼ê½ç¤Ç¥¹¥Æ¡¼¥¸ÍѤξðÊó¤ò´ÉÍý¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¼¡¤Î¼ê½ç¤Ç¤Ï¤³¤Î¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤ò¼«Æ°Åª¤Ë»²¾È¤·¤ÆÆɤ߹þ¤ó¤Ç¡¢·ÐÏ©¤Î¾ðÊó¤òÀßÄꤹ¤ëµ¡Ç½¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡º£¤Þ¤Ç¤è¤ê¤â¹¹¤ËÆñ¤·¤¤½èÍý¤¬Áý¤¨¤Æ¤¤¤¤Þ¤¹¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤È½èÍý¤ÎÆâÍƤòÍý²ò¤Ç¤¤ë¤è¤¦¡¢
£±²ó¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¤Æ½ª¤ï¤ê¤Ç¤Ï¤Ê¤¯¡¢Éü½¬¤ò¹Ô¤¤¤Ê¤¬¤é½èÍý¤òÆɤ߲ò¤¤¤Æ¤¤¤¯¤³¤È¤¬µá¤á¤é¤ì¤Þ¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡È¯Å¸£´¡¡¡¼¥¹¥Æ¡¼¥¸Æâ¤Î°ÜÆ°·ÐÏ©¾ðÊó¤Î¼«Æ°ÀÚ¤êÂؤ¨µ¡Ç½¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯