我在 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/