8,497
社区成员
发帖
与我相关
我的任务
分享
//是否存在 某个元素
List<int> list = Enumerable.Range(1, 10000).ToList();
var dd = list.FirstOrDefault(s => s == 900000);
// Any Contains FirstOrDefault 等其他方法
Func<List<int>, int, bool> AnyContains = (l, t) =>
{
return l.Any(s => s == t);
};
Func<List<int>, int, bool> Contains = (l, t) =>
{
return l.Contains(t);
};
Func<List<int>, int, bool> FirstContains = (l, t) =>
{
return l.FirstOrDefault(s => s == t) != 0; //引用类型null
};
//测试5000
Console.WriteLine(AnyContains(list, 5000));
Console.WriteLine(Contains(list, 5000));
Console.WriteLine(FirstContains(list, 5000));
public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
if (predicate == null)
{
throw Error.ArgumentNull("predicate");
}
foreach (TSource local in source)
{
if (predicate(local))
{
return true;
}
}
return false;
}
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value)
{
ICollection<TSource> is2 = source as ICollection<TSource>;
if (is2 != null)
{
return is2.Contains(value);
}
return source.Contains<TSource>(value, null);
}
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
if (predicate == null)
{
throw Error.ArgumentNull("predicate");
}
foreach (TSource local in source)
{
if (predicate(local))
{
return local;
}
}
return default(TSource);
}
/*
True
False
*/
//条条道路通罗马吧
//一般使用Any方法就可以
void Main()
{
List<int> list = Enumerable.Range(1, 100).ToList();
Console.WriteLine(list.Any(l=>l==3));
Console.WriteLine(list.Any(l=>l==300));
}