c# - Unity - 在列表中找不到对象

标签 c# list unity3d find

我在 Unity 中遇到了一些问题,我应该如何通过 ID 或名称从列表中删除一个项目?我认为这应该可行,但显然行不通。

....
List<MyDataType> myList = new List<MyDataType>();
....
public static void removeItemFromList(int id)
{
    foreach (MyDataType item in myList)
    {
        if (item.TypeId == id)
        Debug.Log("List contains ID: " + item.TypeId);
    }
// PRINTS AN OBJECT WITH THE ID - works as expected

    var match = myList.Find(p => p.TypeId == id);
// SEEMS LIKE IT CAN'T FIND THE OBJECT WITH THE ID

    if (match == null)
    {
        Debug.Log("DOES NOT EXIST");
        return;
    }
// always returns DOES NOT EXIST, WHY?

    myList.Remove(match);


}

最佳答案

我面前没有团结, 但你可以试试 myList.Select(item => item.TypeId == id).SingleOrDefault();

或如 Fabjan 所述:

myList.SingleOrDefault(item => item.TypeId == id);

关于c# - Unity - 在列表中找不到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431927/

相关文章:

python - 使用 Python 将列表写入 Excel 中的单元格

unity3d - OpenGL 着色语言 TRANSFORM_TEX

c# - 在 DataTable 中按日期时间对字符串列进行排序

c# - Xamarin.Forms:Oxyplot 占用整个页面

c# - Entity Framework 删除所有行而不是一行

c# - 是否可以在继承的静态方法中检测类上下文?

R 将列表转换为小写

python - 列表列表及其索引中的最大值

c# - 短时间显示文本层

c# - 调用嵌入在 Winforms-Application 中的 Unity-Application 上的函数