C# 使用linq时是否需要使用对象类型?

C# 使用linq时是否需要使用对象类型?,c#,.net,linq,C#,.net,Linq,我发现很多linq方法都使用泛型,例如: public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate); 有什么不同的地方吗?还有更快的吗?还是没有什么不同?因为它在构建项目时已正确构建 更新: 我为什么要问这个问题,因为我记得在使用net3.5时,有人告诉我,如果你不使用泛型,就

我发现很多linq方法都使用泛型,例如:

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
有什么不同的地方吗?还有更快的吗?还是没有什么不同?因为它在构建项目时已正确构建

更新:


我为什么要问这个问题,因为我记得在使用net3.5时,有人告诉我,如果你不使用泛型,就会出现装箱和拆箱,这会让你的应用程序更慢……**

这是一种类型推断。有关该过程的详细说明,请参阅。

这是类型推断的一种形式。有关该过程的详细说明,请参阅。

这是类型推断的一种形式。有关该过程的详细说明,请参阅。

这是类型推断的一种形式。有关此过程的详细说明,请参阅。

相同。如果您没有明确说明泛型参数是什么,它将尝试从参数中获取它们。您只需要在无法从表达式推断泛型参数时使用
(这种情况很少见)。没有性能差异。您仍然在使用泛型,您没有装箱值,即使您没有使用泛型,您的对象看起来应该是引用类型,这意味着它根本不会装箱,即使它被装箱,性能影响实际上也不太可能有问题,因为拳击没有很多人想象的那么昂贵。对于-1来说,这是一个合理的问题,不值得-1。这是一样的。如果您没有明确说明泛型参数是什么,它将尝试从参数中获取它们。您只需要在无法从表达式推断泛型参数时使用
(这种情况很少见)。没有性能差异。您仍然在使用泛型,您没有装箱值,即使您没有使用泛型,您的对象看起来应该是引用类型,这意味着它根本不会装箱,即使它被装箱,性能影响实际上也不太可能有问题,因为拳击没有很多人想象的那么昂贵。对于-1来说,这是一个合理的问题,不值得-1。这是一样的。如果您没有明确说明泛型参数是什么,它将尝试从参数中获取它们。您只需要在无法从表达式推断泛型参数时使用
(这种情况很少见)。没有性能差异。您仍然在使用泛型,您没有装箱值,即使您没有使用泛型,您的对象看起来应该是引用类型,这意味着它根本不会装箱,即使它被装箱,性能影响实际上也不太可能有问题,因为拳击没有很多人想象的那么昂贵。对于-1来说,这是一个合理的问题,不值得-1。这是一样的。如果您没有明确说明泛型参数是什么,它将尝试从参数中获取它们。您只需要在无法从表达式推断泛型参数时使用
(这种情况很少见)。没有性能差异。您仍然在使用泛型,您没有装箱值,即使您没有使用泛型,您的对象看起来应该是引用类型,这意味着它根本不会装箱,即使它被装箱,性能影响实际上也不太可能有问题,因为拳击并不像很多人想象的那么昂贵。对于-1来说,这是一个合理的问题,不值得-1。
XX.Where<Person>();
XX.Where();