C#:替代存在或getfirstordefault

时间:2013-10-14 21:16:51

标签: c# collections .net-3.0

我有一个班级

class Person {

 int Age;
 string Name;
}

List<Person> pList = new List<Person>();

 pList.Exists(p=> p.Name == "testName");  <-- need an alternative for this.

我正在使用.net 3.0。

因此我无法访问getFirstOrDefault方法。

Exists方法抛出空值的异常,但我不想中断我的程序流;还有其他选择吗?

我也没有AnyLinq

2 个答案:

答案 0 :(得分:3)

Exists应该没问题 - 您只需要处理p null的可能性。

bool nameExists = pList.Exists(p => p != null && p.Name == "testName");

或者,请确保您的列表中不包含任何null引用 - 这可能会使您更轻松地完成各种事情。

答案 1 :(得分:0)

bool nameExists = pList.Any(p=>p.Name == "testName");

或(如果您不能使用Any):

bool nameExists = pList.Select(p=>p.Name).Contains("testName");