IEnumerable扩展方法FirstOrDefault没有完全按照我想要的方式做,所以我创建了FirstOrValue。这是一个很好的方式去解决这个问题,还是有更好的方法?FirstOrDefault不同的采取FirstOrDefault
public static T FirstOrValue<T>(this IEnumerable<T> source, Func<T, bool> predicate, T value)
{
T first = source.FirstOrDefault(predicate);
return Equals(first, default(T)) ? value : first;
}
这应该是框架的一部分!或者我忽略了这一点? – Marcel 2011-09-13 12:54:17
+1“总是先写规格”。 – 2012-02-20 07:00:29