gpt4 book ai didi

c# - Linq 语句中的 TSource 有什么意义?

转载 作者:行者123 更新时间:2023-11-30 14:00:22 26 4
gpt4 key购买 nike

很多语句(在 Linq 中经常看到)在不需要编译或执行时使用 TSource。为什么要指定 TSource?

例子:

 List<int> list = new List<int>(5) { 0, 1, 2, 0, 3 };

int x = list.Where<int>(i => i == 0).FirstOrDefault<int>();
int y = list.Where(i => i == 0).FirstOrDefault();

这些陈述有何不同?

最佳答案

在您的两个 LINQ 语句中,TSource 类型都是必需的。

它只是在第一个语句中明确提供,在第二个语句中隐式推断

您可以在编译器无法推断类型的情况下指定 TSource - 通常是在 lambda 嵌套且非常复杂的情况下。

此外,如果您希望使用 lamdba 中使用的类型的父类(super class)型来执行操作。例如,如果 Apple 继承自 Fruit,您可以指定 Fruit 类型而不是让它推断 Apple

最后,您可以选择指定(或不指定)TSource 只是为了使您的代码更具可读性 - 通过显式包含类型或删除冗余类型重复。

关于c# - Linq 语句中的 TSource 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10930158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com