当将PCL库放在带有profile7的PCL库中(目标:.NET 4.5,Windows 8,.NET Core 1.0,Xamarin.Android,Xamarin.IOS,Xamarin.IOS Classic)时,下面的代码可以很好地编译。
但是,将PCL项目转换为.NET Standard 1.3库之后,它将失败并显示以下信息:
error CS1061: 'IEnumerable<string>' does not contain a definition for 'AsParallel' and no extension method 'AsParallel' accepting a first argument of type 'IEnumerable<string>' could be found (are you missing a using directive or an assembly reference?)
但是.NET Standard 1.3应该仍然支持PLINQ的AsParallel()方法,对吗?
也许我忽略了什么? PLINQ是否应该包含一个附加的nuget?
using System.Collections.Generic;
using System.Linq;
namespace PclTest
{
public class Class1
{
public void Test()
{
List<string> list = new List<string> { "foo", "bar" };
var result = list.AsParallel().Where(x => x == "foo").ToList();
System.Diagnostics.Debug.Assert(result.Count == 1);
}
}
}
我正在使用带有所有最新更新的Visual Studio 2015
最佳答案
有一个名为System.Linq.Parallel的Nuget程序包,它在AsParallel
的程序包中提供了PCL
方法。