unity3d 如何在c#中找到特定枚举成员的数目?[已关闭]

7gcisfzg  于 2023-01-13  发布在  C#
关注(0)|答案(1)|浏览(167)

1小时前关闭。
Improve this question
我有一个可以有各种尺寸的物体。

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

public enum Size
{
    Small = 0,
    Medium,
    Large
}

public class BallSizes : MonoBehaviour
{
    [SerializeField] private Size size;
}

Size赋值给不同的对象后,我想看看有多少对象是SmallLarge等。
Enum.GetName()Enum.GetValue()似乎只返回对象的名称/值,而不是该类型对象的总数。

oo7oh9g9

oo7oh9g91#

如果你有一堆不同大小的对象,并且想要计算每种大小的数量,你可以使用LINQ

var counts = myObjects.GroupBy(obj => obj.Size).Select(group => (group.Key, group.Count());

然后,为了获取所有的球示例,您可以使用FinsObjectsOfType

var myObjects = FindObjectsOfType<BallSizes>();

最好在示例化它们时就将它们存储在列表中

相关问题