只需查看MSDN上的LINQ教程,即可查看以下代码:
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
Run Code Online (Sandbox Code Playgroud)
我不明白如何返回一个接口?我的理解是,界面只是一个类的轮廓,当然不能包含任何数据.
我希望这能得到澄清.
Dar*_*mas 10
接口是返回值的契约:Linq实际上不会告诉你它将返回什么(如在实际类中),但它将保证它的行为类似于IEnumerable<int>
,即它返回的类实现此接口.它可能是一个List<int>
或一个WhackyLinqInternalEnumerable<int>
- 但你并不在乎,因为,你所感兴趣的只是界面(你可以用这个对象做什么).
可能令您感到困惑的一件事是变量与它所代表的对象之间的区别:对于(引用)类型,变量只是"指向"对象.你可以让很多变量"指向"同一个对象.它们不需要具有相同的类型,但它们所指向的对象必须是与变量相同的类型,子类型或(在具有接口类型的变量的情况下)必须实现相同的变量.