ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ09·î08Æü(¶â) 11:19:13ÍúÎò
½èÍý¤òÈæ³Ó¤·¡¢ÃÖ¤´¹¤¨¤Æ¤¤¤¤Ê¤¬¤éÍý²ò¤ò¿¼¤á¤Þ¤·¤ç¤¦¡£
¡¡Á°²ó¤Ï¤³¤Á¤é¤Ç¤¹¡£
¡¡¡¡=>¡¡´û¸¤Î½èÍý¤ò¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¤Æ³Ø¤Ö LINQ ³èÍÑÎã¡
¡¡LINQ ¤Ë¤ÏÈó¾ï¤Ë¿¿ô¤Î¥á¥½¥Ã¥É¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤ÎÃæ¤«¤é¾Ò²ð¤·¤Þ¤¹¡£
¡¡Á°²ó¤ÎÉü½¬¤«¤é¹Ô¤¤¤Þ¤¹¡£
¡¡¥¯¥é¥¹¤ò List ¤Ç´ÉÍý¤·¤Æ¤¤¤ë¾ì¹ç¤Î¥Õ¥£¥ë¥¿¥ê¥ó¥°¤Ç¤¹¡£
¡¡¤Þ¤º¤Ï¶¦Ä̤ÇÍøÍѤ¹¤ë¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
public class Person { public string Name { get; set; } public int Age { get; set; } }
¡¡½¾Íè¤Î¥³¡¼¥É¤Ç¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<Person> adults = new List<Person>(); foreach (Person person in people) { if (person.Age >= 18) { adults.Add(person); } }
¡¡¤³¤Î¥³¡¼¥É¤Ç¤Ï¡¢people¥ê¥¹¥È¤«¤é18ºÐ°Ê¾å¤ÎPerson¤ò¸«¤Ä¤±¤Æ¡¢adults¥ê¥¹¥È¤ËÄɲ䷤Ƥ¤¤Þ¤¹¡£
¡¡¤½¤ì¤Ç¤Ï¤³¤Î½èÍý¤ò LINQ ¤ò»È¤¤¡¢Where ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¤Þ¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<Person> adults = people.Where(person => person.Age >= 18).ToList();
¡¡Where()¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ18ºÐ°Ê¾å¤ÎPerson¤ò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¡¢.ToList()¤Ç¿·¤·¤¤¥ê¥¹¥È¤ËÊÑ´¹¤·¤Þ¤¹¡£
¡¡½¾Íè¤Î¥³¡¼¥É¤Ç¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<string> names = new List<string>(); foreach (Person person in people) { names.Add(person.Name); }
¡¡¤³¤³¤Ç¤Ï¡¢people¥ê¥¹¥È¤Î³ÆPerson¤«¤é̾Á°¤ò¼èÆÀ¤·¡¢names¥ê¥¹¥È¤ËÄɲ䷤Ƥ¤¤Þ¤¹¡£
¡¡¤½¤ì¤Ç¤Ï¤³¤Î½èÍý¤ò LINQ ¤ò»È¤¤¡¢Select ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¤Þ¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<string> names = people.Select(person => person.Name).ToList();
¡¡Select()¥á¥½¥Ã¥É¤ò»È¤Ã¤ÆPerson¥ª¥Ö¥¸¥§¥¯¥È¤«¤é̾Á°¤òÃê½Ð¤·¡¢¤½¤Î·ë²Ì¤ò¿·¤·¤¤¥ê¥¹¥È¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Á¤é¤Î½¾Íè¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥ê¥¹¥È¤ÎÁ´¤Æ¤ÎÍ×ÁǤιç·×¤ò·×»»¤·¤Æ¤¤¤Þ¤¹¡£
¡¡
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int sum = 0; foreach(int num in numbers){ sum += num; }
¡¡¤½¤ì¤Ç¤Ï¤³¤Î½èÍý¤ò LINQ ¤ò»È¤¤¡¢Sum ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int sum = numbers.Sum();
¡¡Sum()¥á¥½¥Ã¥É¤Ï¥ê¥¹¥È¤ÎÁ´¤Æ¤ÎÍ×ÁǤιç·×¤òÊÖ¤·¤Þ¤¹¡£
¡¡Sum ¥á¥½¥Ã¥É¤Ë¤Ï¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬¤¢¤ê¡¢°ú¿ô¤Ë¥á¥½¥Ã¥É¤ò¼è¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤ì¤ò»È¤Ã¤Æ¡¢ÆÃÄê¤Î¥×¥í¥Ñ¥Æ¥£¤Ë´ð¤Å¤¤¤Æ¹ç·×¤òµá¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢Person ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤«¤éÁ´°÷¤ÎǯÎð¤Î¹ç·×¤ò·×»»¤¹¤ë¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; int totalAge = people.Sum(person => person.Age);
¡¡¤³¤Î¥³¡¼¥É¤Ç¤Ï¡¢.Sum()¥á¥½¥Ã¥É¤Ëperson => person.Age¤È¤¤¤¦¥á¥½¥Ã¥É¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ì¤Ë¤è¤ê¡¢Sum¤Ï¥ê¥¹¥ÈÆâ¤Î³ÆPerson¥ª¥Ö¥¸¥§¥¯¥È¤ÎAge¥×¥í¥Ñ¥Æ¥£¤Î¹ç·×¤ò·×»»¤·¤Þ¤¹¡£
¡¡¾º½ç¥½¡¼¥È¡¢¹ß½ç¥½¡¼¥È¤Îµ¡Ç½¤Ç¤¹¡£
¤³¤ì¤é¤ÏÆÃÄê¤Î½ç½ø¤ËʤÙÂØ¤¨¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
¡¡°Ê²¼¤Ë¡¢Person¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤òǯÎð¤Ç¾º½ç¤ª¤è¤Ó¹ß½ç¤ËʤÙÂØ¤¨¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï½¾Íè¤Î½èÍý¤Ç¹Ô¤¦¥±¡¼¥¹¤«¤éÄ󼨤·¤Þ¤¹¡£
¡ã¾º½ç¥½¡¼¥È¡ä
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; people.Sort((p1, p2) => p1.Age.CompareTo(p2.Age));
¡ã¹ß½ç¥½¡¼¥È¡ä
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; people.Sort((p1, p2) => p2.Age.CompareTo(p1.Age));
¡¡¤³¤ÎÎã¤Ç¤Ï¡¢Sort ¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ people ¥ê¥¹¥È¤òľÀÜ¥½¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢°ú¿ô¤Ë Comparison<T> ¥Ç¥ê¥²¡¼¥È¤ò¤È¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï¡¢¥é¥à¥À¼°¤ò»ÈÍѤ·¤Æ Person ¥ª¥Ö¥¸¥§¥¯¥È¤Î Age ¥×¥í¥Ñ¥Æ¥£¤Ë´ð¤Å¤¯Èæ³Ó¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤·¤«¤·¡¢Ãí°ÕÅÀ¤È¤·¤Æ¡¢¤³¤ì¤é¤Î½èÍý¤Ï¸µ¤Î people ¥ê¥¹¥È¼«ÂΤòÊѹ¹¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¸µ¤Î½ç½ø¤òÊÝ»ý¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¿·¤·¤¤¥ê¥¹¥È¤òºîÀ®¤·¤Æ¤«¤é¥½¡¼¥È¤¹¤ë¤«¡¢
¼¡¤ËÄ󼨤¹¤ë LINQ ¤Î OrderBy ¤Þ¤¿¤Ï OrderByDescending ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬Å¬¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ì¤é¤ÎLINQ¥á¥½¥Ã¥É¤Ï¸µ¤Î¥³¥ì¥¯¥·¥ç¥ó¤òÊѹ¹¤»¤º¡¢¿·¤·¤¤½ç½øÉÕ¤±¤é¤ì¤¿¥·¡¼¥±¥ó¥¹¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤Î¤Ç¡¢¸µ¤Î¥³¥ì¥¯¥·¥ç¥ó¤ÏÊÝ»ý¤µ¤ì¤Þ¤¹¡£
¡ã¾º½ç¥½¡¼¥È¡ä
¡¡OrderBy(¾º½ç) ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Þ¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<Person> orderedPeople = people.OrderBy(person => person.Age).ToList();
¡ã¹ß½ç¥½¡¼¥È¡ä
¡¡OrderByDescending¡Ê¹ß½ç¡Ë¤òÍøÍѤ·¤Þ¤¹¡£
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; List<Person> orderedPeople = people.OrderByDescending(person => person.Age).ToList();
¡¡¤³¤³¤Ç¤Ï¡¢OrderBy¤ÈOrderByDescending¥á¥½¥Ã¥É¤Ëperson => person.Age¤È¤¤¤¦¥á¥½¥Ã¥É¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢Ê¤ÙÂØ¤¨¤Ï³ÆPerson¥ª¥Ö¥¸¥§¥¯¥È¤ÎAge¥×¥í¥Ñ¥Æ¥£¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£
¡¡
¡¡ToList ¥á¥½¥Ã¥É¤ÈƱÍͤˡ¢ToArray¥á¥½¥Ã¥É¤ò»È¤Ã¤ÆLINQ¤Î·ë²Ì¤òÇÛÎó¤ËÊÑ´¹¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int[] results = numbers.Where(num => num > 2).ToArray();
¡¡¤³¤ÎÎã¤Ç¤Ï¡¢Where¥á¥½¥Ã¥É¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤¿·ë²Ì¤ò List ¤«¤éÇÛÎó¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢ToDictionary¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¡¢LINQ¤Î·ë²Ì¤òDictionary¤ËÊÑ´¹¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢Person¥¯¥é¥¹¤Î¥ê¥¹¥È¤ò¡¢Ì¾Á°¤ò¥¡¼¤È¤¹¤ëDictionary¤ËÊÑ´¹¤¹¤ëÎã¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡§
List<Person> people = new List<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Anna", Age = 30 }, new Person { Name = "Mike", Age = 18 } }; Dictionary<string, Person> peopleDict = people.ToDictionary(person => person.Name);
¡¡¤³¤ÎÎã¤Ç¤Ï¡¢ToDictionary¥á¥½¥Ã¥É¤Ëperson => person.Name¤È¤¤¤¦¥á¥½¥Ã¥É¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢³ÆPerson¥ª¥Ö¥¸¥§¥¯¥È¤«¤é̾Á°¤ò¼è¤ê½Ð¤·¡¢¤½¤ì¤ò¿·¤·¤¤Dictionary¤Î¥¡¼¤È¤·¤Þ¤¹¡£Dictionary¤ÎÃͤϡ¢¸µ¤ÎPerson¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤Ï¥·¡¼¥±¥ó¥¹¤«¤éºÇ½é¤ÎÍ×ÁǤòÊÖ¤·¤Þ¤¹¡£
¡¡
¡¡FirstOrDefault¤Î¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹¤¬¶õ¤Î¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤòÊÖ¤·¤Þ¤¹¡£
¡¡ºÇ½é¤Ë½¾Íè¤Î½èÍý¤Ç¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int firstNumber = numbers[0];
¡¡¤¿¤À¤·¡¢¥ê¥¹¥È¤¬¶õ¤Ç¤Ê¤¤¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Î¥Á¥§¥Ã¥¯¤ò´Þ¤á¤ë¤Ù¤¤Ç¤¹¡£
¡¡¤½¤ì¤Ç¤Ï¤³¤Î½èÍý¤ò LINQ ¤ò»È¤¤¡¢First / FirstOrDefault ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int firstNumber = numbers.First();
¡¡¤Þ¤¿¡¢°ú¿ô¤Ë¥á¥½¥Ã¥É¤ò¼è¤ë¤³¤È¤Ç¡¢¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ëºÇ½é¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int firstNumber = numbers.FirstOrDefault(x => x >= 2);
¡¡¤³¤ì¤é¤ÏÎ㤨¤Ð¥²¡¼¥à¤ÎŨ¤Î¥ê¥¹¥È¤«¤éºÇ½é¤ÎŨ¤ò¼èÆÀ¤¹¤ëºÝ¤Ë»È¤¨¤Þ¤¹¡£
List<Enemy> enemies = GetEnemies(); Enemy firstEnemy = enemies.First();
¡¡¤Þ¤¿¡¢¾ò·ïÉÕ¤¤ÇºÇ½é¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢List.Find ¥á¥½¥Ã¥É¤ÈƱ¤¸¤è¤¦¤Ë¡¢ºÇ½é¤Ë¾ò·ï¤Ë¹çÃפ·¤¿Í×ÁǤò¼èÆÀ¤·¤Þ¤¹¡£
Enemy firstStrongEnemy = enemies.FirstOrDefault(enemy => enemy.Strength > 100);
¡¡¤½¤Î¤¿¤á¡¢³Ð¤¨¤Æ¤ª¤¯¤ÈÊØÍø¤Êµ¡Ç½¤Ç¤¹¡£
¡¡¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤Ï¥·¡¼¥±¥ó¥¹¤«¤éºÇ¸å¤ÎÍ×ÁǤòÊÖ¤·¤Þ¤¹¡£
LastOrDefault¤Î¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹¤¬¶õ¤Î¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤòÊÖ¤·¤Þ¤¹¡£
¡¡¤½¤ì¤Ç¤Ï½¾Íè¤Î½èÍý¤Ç¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int lastNumber = numbers[numbers.Count - 1];
¡¡¤¿¤À¤·¡¢¥ê¥¹¥È¤¬¶õ¤Ç¤Ê¤¤¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Î¥Á¥§¥Ã¥¯¤ò´Þ¤á¤ë¤Ù¤¤Ç¤¹¡£
¡¡¤½¤ì¤Ç¤Ï¤³¤Î½èÍý¤ò LINQ ¤ò»È¤¤¡¢Last / LastOrDefault ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int lastNumber = numbers.Last();
¡¡¤Þ¤¿¡¢°ú¿ô¤Ë¥á¥½¥Ã¥É¤ò¼è¤ë¤³¤È¤Ç¡¢¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ëºÇ¸å¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
List<int> numbers = new List<int> {1, 2, 3, 4, 5}; int lastNumber = numbers.LastOrDefault(x => x <= 2);
¡¡¤³¤ì¤é¤ÏÎ㤨¤Ð¥×¥ì¥¤¥ä¡¼¤Î¥¢¥¯¥·¥ç¥ó¤Î¥ê¥¹¥È¤«¤éºÇ¸å¤Î¥¢¥¯¥·¥ç¥ó¤ò¼èÆÀ¤¹¤ëºÝ¤Ë»È¤¨¤Þ¤¹¡£
List<Action> actions = GetPlayerActions(); Action lastAction = actions.Last();
¡¡First ¤ÈƱ¤¸¤è¤¦¤Ë¾ò·ïÉÕ¤¤ÇºÇ¸å¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
Action lastJumpAction = actions.LastOrDefault(action => action.Type == ActionType.Jump);
¡¡¡¡=>¡¡´û¸¤Î½èÍý¤ò¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¤Æ³Ø¤Ö LINQ ³èÍÑÎã£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯