创建我自己的LINQ集合
我正在寻找关于如何为我的业务类创建LINQ访问器/API的好教程。这样最终有人可以在程序中输入类似的内容--创建我自己的LINQ集合,linq,Linq,我正在寻找关于如何为我的业务类创建LINQ访问器/API的好教程。这样最终有人可以在程序中输入类似的内容-- 我在.Net集合中经常使用LINQ,但在我自己的类中从未使用过。这只是实现IEnumerable的问题,还是还需要其他步骤?您只需要在类中实现,然后就可以使用LINQ了。 因为LINQ是IEnumerable对象的一组扩展,所以您只需要在类中实现,然后就可以使用LINQ了。 因为LINQ是IEnumerable对象的一组扩展LINQ是一个有趣的野兽 在讨论LINQ时,我立刻想到了IE
我在.Net集合中经常使用LINQ,但在我自己的类中从未使用过。这只是实现IEnumerable的问题,还是还需要其他步骤?您只需要在类中实现,然后就可以使用LINQ了。
因为LINQ是
IEnumerable
对象的一组扩展,所以您只需要在类中实现,然后就可以使用LINQ了。
因为LINQ是
IEnumerable
对象的一组扩展LINQ是一个有趣的野兽
在讨论LINQ时,我立刻想到了IEnumerable
。看起来,IEnumerable
是LINQ,但它不是IEnumerable
是LINQ方法的一种实现,它允许针对实现IEnumerable
的对象编写LINQ查询
另一个实现是IObservable
,它支持微软的反应式扩展。这是一组扩展,允许针对事件(或数据流)编写LINQ查询。与IEnumerable
无关
LINQ也可以直接写在对象中——它根本不必是扩展方法
例如,定义类A
和B
如下:
public class A
{
public B Select(Func<A, B> selector)
{
return selector(this);
}
}
public class B
{
public B(A a) { }
}
是林克,吉姆,但不是我们所知道的
所有LINQ运算符都可以这样定义。只要编译器能够看到具有正确签名的方法,你就是黄金
话虽如此,LINQ查询在处理一系列值时感觉很自然,因此这就是为什么
IEnumerable
和IObservable
是LINQ运行的好例子。但是,只要实现正确的方法,就可以针对您喜欢的任何类型定义LINQ。LINQ是一个有趣的野兽
在讨论LINQ时,我立刻想到了IEnumerable
。看起来,IEnumerable
是LINQ,但它不是IEnumerable
是LINQ方法的一种实现,它允许针对实现IEnumerable
的对象编写LINQ查询
另一个实现是IObservable
,它支持微软的反应式扩展。这是一组扩展,允许针对事件(或数据流)编写LINQ查询。与IEnumerable
无关
LINQ也可以直接写在对象中——它根本不必是扩展方法
例如,定义类A
和B
如下:
public class A
{
public B Select(Func<A, B> selector)
{
return selector(this);
}
}
public class B
{
public B(A a) { }
}
是林克,吉姆,但不是我们所知道的
所有LINQ运算符都可以这样定义。只要编译器能够看到具有正确签名的方法,你就是黄金
话虽如此,LINQ查询在处理一系列值时感觉很自然,因此这就是为什么IEnumerable
和IObservable
是LINQ运行的好例子。但是,只要实现正确的方法,就可以根据您喜欢的任何类型定义LINQ。LINQ不是IEnumerable
对象的一组扩展。事实上,它甚至不是IEnumerable
的一组扩展。你已经从头定义了它。应该是IEnumerable
LINQ扩展实现了使用LINQ所需的方法。LINQ不是IEnumerable
对象的一组扩展。事实上,它甚至不是IEnumerable
的一组扩展。你已经从头定义了它。应该是IEnumerable
LINQ扩展实现了使用LINQ所需的方法。
B query =
from x in a
select new B(x);