简体   繁体   English

清单C#中的标签

[英]Tags in list c#

I want to check objects in a List for their tags. 我想检查列表中的对象以获取其标签。 And for each tag that matches "clean" an integer needs to be raised. 对于与“干净”匹配的每个标签,都需要增加一个整数。 Is this possible? 这可能吗? If so, how can I accomplish this? 如果是这样,我该怎么做?

Thanks in advance! 提前致谢!

PS: This is what I have now. PS:这就是我现在所拥有的。

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>();
    }
}

You can try with Linq: 您可以尝试使用Linq:

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

It returns to you the number of objects in that list that contains the tag "clean". 它会向您返回该列表中包含标签“ clean”的对象数。

How about: 怎么样:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM