检查列表中的值

时间:2009-12-23 04:51:36

标签: c#

我有一个通用的值列表。我想检查该通用列表中是否存在Id。

最简单的方法是什么?

例如

List<someCustomObject> mylist = GetCustomObjectList();

int idToCheckFor = 12;

我想通过检查每个someCustomObject.Id = idToCheckFor

来查看列表中的任何自定义对象中是否存在12

如果找到匹配,我很高兴我的方法将返回bool true。我只想弄清楚是否有一种简单的方法,而不是循环遍历列表中的每个项目,以查看idToCheckFor == someCustomObject.id,如果找到匹配项,则将变量设置为true。我确信必须有更好的方法来解决这个问题。

9 个答案:

答案 0 :(得分:6)

如果您使用的是.NET 3.5,那么使用LINQ to对象很容易:

return myList.Any(o => o.ID == idToCheckFor);

除此之外,循环通常是您唯一的选择。

答案 1 :(得分:2)

Boolean b = myList.Find(obj => obj.id == 12) != null;

答案 2 :(得分:1)

LINQ让生活更轻松

mylist.Where(x => x.id == idToCheckFor).Any()

由于

答案 3 :(得分:0)

我认为您使用的是错误的数据结构。你需要的是:

Dictionary<int, someCustomObject> myDictionary = GetCustomObjectDictionary();

现在,您可以轻松检查ID是否存在且性能非常出色。

return myDictionary.ContainsKey(idToCheckFor);

答案 4 :(得分:0)

 bool found = mylist.Any(p => p.Id == idToCheckFor);

答案 5 :(得分:0)

bool bExists = myList.Any(x=>x.id == idToCheckFor);

答案 6 :(得分:0)

if(mylist.Any(Item => Item.Id == idToCheckFor))
{
  do();
}

答案 7 :(得分:0)

返回myList.Exists(item =&gt; item.Id == idToCheckFor);

对于linq资源,您可以查看101 linq samples

答案 8 :(得分:-1)

使用LINQ to Objects。如下所示:

var result = from l in mylist
             where l.id = 12
             select l;

return result != null;