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");

它还回来了斑马。有办法做到这一点吗?感谢

C#通过搜索某个特定对象的变量来查找该对象

使用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