Six*_*x80 5 portable-class-library xamarin
根据MSDN,.AsReadOnly()方法被列为PCL支持,但我无法在我的Xamarin PCL上引用它.
任何人都可以验证吗?如果是这样的话,还有.AsReadOnly()等价的替代品吗?
https://msdn.microsoft.com/en-us/library/e78dcd75(v=vs.100).aspx
https://developer.xamarin.com/api/member/System.Collections.Generic.List%3CT%3E.AsReadOnly()/
List<T>.AsReadOnly()仅适用于某些PCL配置文件.特别是,那些针对Windows 8/8.1和Windows Phone 8.1非Silverlight(32,111,259,328等)的配置文件可能不会包含List<T>.AsReadOnly(),因为这些方法在这些平台上不可用.
简单的解决方法是ReadOnlyCollection<T>通过构造函数创建:
List<T> list;
var listToReadOnly = new ReadOnlyCollection<T>(list);
Run Code Online (Sandbox Code Playgroud)
如果您想保持源代码不变,您甚至可以实现扩展方法来完成工作.只需在公共静态类中包含以下方法:
public static ReadOnlyCollection<T> AsReadOnly<T>(this List<T> list)
{
return new ReadOnlyCollection<T>(list);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |