05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】LINQとかちょっと触ってみたよ!でもiOS実機で問題あるメソッドもあるのね… 

こんにちは。
大坂です。

昨日から雨すごいですね・・・。
色々なところが冠水とかしてますが、みなさん大丈夫でしょうか・・・。

さて、今週も宴・・・と思いましたが、違うネタです。
C#でLINQって機能がありますね。それをUnityでも使ってみたってお話。
使うの慣れれば、コードがすっきりしますね。

では簡単に使い方。
まずは適当にこんなクラスを準備。
public class Item {
public string itemName;
public int itemType;
public int price;
}


次にアイテムデータを適当に作成。
    List<Item> itemData = new List<Item>();

void CreateItemData() {
Item item1 = new Item();
item1.itemName = "アイテム1";
item1.itemType = 1;
item1.price = 100;

itemData.Add(item1);

Item item2 = new Item();
item2.itemName = "アイテム2";
item2.itemType = 1;
item2.price = 150;

itemData.Add(item2);

Item item3 = new Item();
item3.itemName = "アイテム3";
item3.itemType = 2;
item3.price = 70;

itemData.Add(item3);

Item item4 = new Item();
item4.itemName = "アイテム4";
item4.itemType = 2;
item4.price = 1000;

itemData.Add(item4);

Item item5 = new Item();
item5.itemName = "アイテム5";
item5.itemType = 3;
item5.price = 400;

itemData.Add(item5);
}

で、LINQを使ってアイテムデータを抽出。
あ、LINQ使うときは「using System.Linq;」が必要です。
    //itemTypeが1のデータの個数を抽出
int itemType1Count = itemData.Count(item => item.itemType == 1);

//itemTypeが2のデータを抽出
List<Item> itemType2Data = itemData.Where(item => item.itemType == 2).ToList<Item>();


それぞれデータをログに出だすと

ちゃんと抽出できてますね。

並べ替えとかもできるので、使いたいんですが・・・。
Unity+iOSでエラーになるメソッドがあるみたいですね。
今回はちょっとiOSの実機で試すところまではやってませんが、まとめられてますね。
Unity+iOSでエラーになるLINQのまとめ
ブログ書いてる方がUniLinqというライブラリも作ってるみたいですね。
UniLinq
まだ不完全らしいですが、結構改善されてるみたいです。

では今週もこの辺でノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/238-d2fe1c6c
この記事にトラックバックする(FC2ブログユーザー)