检查自定义类的条目是否在使用c#的List Array中
本文关键字:List Array 是否 自定义 检查 | 更新日期: 2023-09-27 18:28:48
我在网上和这里做了很多搜索(找到了很多有用的条目,帮助了我)需要帮助想办法。我正在为我儿子开发一款游戏。我正在创建一个库存系统。我使用列表来保存他库存中的所有当前项目,但它引用了一个自定义类。
这是到目前为止设置项目的课程。
using UnityEngine;
using System.Collections;
public class Item
{
public string Name;
public string Description;
public int ID;
public int Type;
public int Quantity;
// Use this for initialization
public Item(string newName, string newDesc, int newId, int newType, int newQty)
{
Name = newName;
Description = newDesc;
ID = newId;
Type = newType;
Quantity = newQty;
}
}
在我的playerstats中,我输入了一些项目,只是为了测试
void SetStartingInventory()
{
Inventory.Add( new Item("Rookie Ball","Stater Capturing Device",1,1,5));
Inventory.Add( new Item("Potion", "Replenish 5 health points.",2,2,2));
}
一切都会正常显示,我知道我还没有一个合适的项目数据库设置,这更多的是为了测试并找到有效的东西。。我相信有一种更好、更有组织的方式可以保持这种状态。
不管怎样!出于测试目的,我想按下g按钮,这是一个很容易的问题。我想做的是查找"库存"列表中是否已经有一个条目,匹配项为。。"药剂"或其物品ID#,如果返回true,该条目的索引是多少,这样我就可以再给一个药剂,并将我的数量增加一个。
任何帮助和指导都是非常有用的。
我建议您快速查看Linq为Enumerable集合提供的扩展方法。它允许您以非常简单的方式查询可枚举集合。
例如,这里有一个查找id大于20的药剂的快速示例。
using System.Linq;
List<Item> items;
Item[] potionItemWithIdsGreaterThan20 =
items.Where(i => i.Name.Equals("Potion") && i.ID > 20).ToArray();