2012-02-13 2 views
0

リスト内のオブジェクトのタグをチェックしたいと思います。また、 "クリーン"にマッチする各タグについては、整数を上げる必要があります。これは可能ですか?もしそうなら、私はこれをどのように達成できますか?リストCのタグ

ありがとうございます!

P .:これは私が今行っていることです。

using UnityEngine; 
using System.Linq; 
using System.Collections; 
using System.Collections.Generic; 


public class productManager : MonoBehaviour { 

    public string ownerName = ""; 
    public List<Transform> ingredients = new List<Transform>(); 
    //public int count = (from Object in List<Transform> ingredients where Object.Tags.Contains("clean") select Object).Count<Transform>(); 

    void Start(){ 
     ownerName = transform.name; 
     name = ownerName + "'s ingredients"; 
    } 

    void Update(){ 
     int count = (from Object in List<Transform> where Object.Tags.Contains("clean") select Object).Count<Transform>(); 
    } 
} 
+0

完全に可能とも非常に簡単。オンラインで検索し、何が出てくるのかを見てから、特定の質問をすることをお勧めします。あなたはそのようにずっとよく学びます。 – CSharpened

+0

私はすでにそれを試みましたが、簡単な答えを見つけることはこのテーマでは簡単ではありません。少なくとも私のために:S。 – Amacoder

答えて

3

あなたはLINQので試すことができます。

int count = (from Object in List<T> where Object.Tags.Contains("clean") select Object).Count<T>()

それはあなたに「クリーン」のタグが含まれているリスト内のオブジェクトの数を返します。

+0

あなたの答えをありがとうが、私はそれを動作させる方法を見つけることができません。私たちを手伝ってくれますか?私は次のようになっています: "Where 'クエリ式パターンの実装が見つかりませんでした。エラー。最近編集した記事を編集してください。 – Amacoder

+1

これを試してください: 'int count =(o.Tags.Contains( "クリーン")を選択o).Count ();' – msancho

+0

それは働いた!どうもありがとう。あなたのためのインターネット! – Amacoder

0

方法について:

var itemsWithCleanTag = myList.Where(item => item.Tag == "clean"); 

foreach(var item in itemsWithCleanTag) 
{ 
    item.Raise(5); 
}