C#通过搜索某个特定对象的变量来查找该对象
本文关键字:对象 变量 查找 搜索 | 更新日期: 2023-09-27 18:25:26
所以我正在尝试做一些类似于getElementById
在JavaScript中所做的事情。
我想做这样的事情:
class Animal
{
string id;
}
public Animal Zebra = new Animal();
Zebra.id = "abc";
//and then get it like this
var foo = getAnimalId("abc");
它还回来了斑马。有办法做到这一点吗?感谢
使用Dictionary<string, Animal>
,其中密钥是ID。然后您可以使用Dictionary<TKey, TValue>.TryGetValue
:获得它
var animalIDs = new Dictionary<string, Animal>();
animalIDs.Add(Zebra.id, Zebra);
//。。。。
Animal animal;
bool containsAnimalID = animalIDs.TryGetValue("abc", out animal);
if(containsAnimalID)
{
// do something with the zebra ...
}
这个问题很模糊,所以很难理解你需要什么样的帮助。但我会尽力给你一个答案。
首先,你必须将动物储存在一个类似列表的东西中。
public List<Animal> _animals = new List<Animal>();
当你创建这些动物时,你必须将它们添加到列表中。
Animal zebra = new Animal();
zebra.id = "abc";
_animals.Add(zebra);
然后,您可以检查id为abc
的动物是否存在,如下所示:
if(_animals.Any(a => a.id == "abc"))
然后得到这样的动物:
Animal animal = _animals.FirstOrDefault(a => a.id == "abc");
List.FirstOrDefault()
允许您获得与id匹配的第一只动物,如果不存在,则返回null
。