在C#中进行开发时,使用类似函数的方法(如Where,Select,Aggregate等)实际上有很多原因并且我使用它们非常多。但是,适用于Windows Phone 7.1的Silverlight 4.0 Framework似乎不包含这些内容。有什么方法可以改变吗?我想我不能只是将mscorlib.dll更改为指向完整.NET框架中的那个,或者我可以吗?
答案 0 :(得分:1)
警告:我不做积极的WP7开发。
然而!启动一个vanilla Windows Phone 7.1项目,并使用以下方法,它工作正常 - LINQ查询语法和扩展方法语法都可以正常工作:
var foo = from x in arr
where x%2 == 0
select x*2;
var bar = foo.Average();
唯一要注意的是它从System.Core.dll获取这些方法,即(如果我在IDE中浏览它):
// Type: System.Linq.Enumerable
// Assembly: System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
// Assembly location: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71\System.Core.dll
所以:只需确保引用Windows Phone 7.1的System.Core.dll
编辑(见评论):还检查你有:
using System.Linq;
位于文件顶部。