C#通过搜索其中一个变量来查找特定对象

时间:2015-12-03 12:56:50

标签: c# class object

所以我试图通过getElementById尝试在JavaScript中执行类似的操作。

我想做这样的事情:

class Animal 
{  
   string id; 
}

public Animal Zebra = new Animal();
Zebra.id = "abc";

//and then get it like this
var foo = getAnimalId("abc");

然后它返回Zebra。有什么办法吗?感谢

2 个答案:

答案 0 :(得分:2)

使用密钥为ID的Dictionary<string, Animal>。然后你可以使用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 ...
}

答案 1 :(得分:0)

问题很模糊,所以很难理解你需要什么样的帮助。但我会试着给你一个答案。

首先,您必须将动物存放在列表中。

public List<Animal> _animals = new List<Animal>();

当你创造动物时,你必须将它们添加到列表中。

Animal zebra = new Animal();
zebra.id = "abc";

_animals.Add(zebra);

然后,您可以检查身份abc的动物是否存在:

if(_animals.Any(a => a.id == "abc")) 

并得到这样的动物:

Animal animal = _animals.FirstOrDefault(a => a.id == "abc");

List.FirstOrDefault()允许您获取与id匹配的第一个动物,如果不存在,则返回null