What does the Type parameter in IEnumerable<T>.Interse
本文关键字:lt gt Interse IEnumerable the does Type parameter in What | 更新日期: 2023-09-27 18:25:49
我有一个方法:
public static bool ItemsIntersectOrFirstIsEmpty<T>(IEnumerable<T> source, IEnumerable<T> target)
{
if (source.Any())
{
return source.Intersect(target).Any();
}
else
{
return true;
}
}
我看到你可以把一个类型传递给Intersect(),所以第一个条件中的返回行是:
return source.Intersect<T>(target).Any();
这与我原来的代码有何不同?
明确指定参数类型没有任何区别;source
是IEnumerable<T>
,Intersect<T>()
取IEnumerable<T>
,因此编译器可以推断参数类型,而无需显式定义。
当然,如果您愿意,可以包含参数类型,但有时这可能会使代码变得更嘈杂/更难读取。如果您要明确所有参数类型,该方法看起来像
public static bool ItemsIntersectOrFirstIsEmpty<T>(IEnumerable<T> source, IEnumerable<T> target)
{
if (source.Any<T>())
{
return source.Intersect<T>(target).Any<T>();
}
else
{
return true;
}
}