&tag(LINQtoObjects);
*目次 [#y32d9f90]
#contents
*参考情報 [#hb7deef0]
-[[LINQ to Objects:http://msdn.microsoft.com/ja-jp/library/bb397919.aspx]]
-[[よくあるコーディングパターンと LINQ to Objects の対応付け - ぐるぐる〜:http://d.hatena.ne.jp/bleis-tift/20110210/1297310411]]…ぱっと探したい時にわかりやすい。
*簡単なサンプル [#t5878f41]
**最初の要素を検索( [#d9c82fa2]
**最初の要素を検索 [#d9c82fa2]
-例外を発生させない場合FirstOrDefaultを使う。条件を指定することもできる
 items.FirstOrDefault(x => x.Age == 10);

-Whereで条件を指定したあとFirstOrDefaultしても同じ。[[C# Linq Where(expression).FirstorDefault() vs .FirstOrDefault(expression) - Stack Overflow:http://stackoverflow.com/questions/8059285/c-sharp-linq-whereexpression-firstordefault-vs-firstordefaultexpression]]。
**要素が存在するかどうかを確認 [#x1a39187]
-Anyを使う
 items.Any(x => x.Age == 10);

**要素を変換する [#xb8e24e5]
-Select().ToList()を使う。
 List<int> ages = items.Select(x => x.Age).ToList();


**条件にあうものを抽出 [#h69fdeab]
-データのクラス
#pre{{

        public class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public override string ToString()
            {
                return Name + " " + Age;
            }
        }
}}
-Listから15歳より大きいものを抽出。
#pre{{
            List<Person> persons = new List<Person>();
            persons.Add(new Person() { Name = "Ken", Age = 30 });
            persons.Add(new Person() { Name = "Tom", Age = 10 });
            persons.Add(new Person() { Name = "Mike", Age = 20 });
            persons.Add(new Person() { Name = "Joe", Age = 30 });

            var results = from Person person in persons
                        where person.Age > 15
                        select person;
            foreach (Person person in results)
            {
                Debug.WriteLine(person);
            }
            //Mike 20
            //Joe 30
            //
}}



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS