2016-06-17 8 views
4

MSDNによると、.AsReadOnly()メソッドはPCLでサポートされていますが、Xamarin PCL 。.AsReadOnly()は含まれていませんMSDNでサポートされていると表示されているにもかかわらず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()/

答えて

7

List<T>.AsReadOnly()いくつかのPCLプロファイルでのみ使用可能です。この方法は、上ない利用可能であるので、特に、これらのプロファイルは、のWindows 8/8.1Windowsの携帯電話8.1非シルバー(32、111、259、328など)可能性List<T>.AsReadOnly()を含まない標的とそれらのプラットフォーム。

簡単な回避策は、コンストラクタを介してReadOnlyCollection<T>を作成することです:

List<T> list; 
var listToReadOnly = new ReadOnlyCollection<T>(list); 

あなたがそのままあなたのソースコードを維持したい場合はあなたも仕事をするための拡張メソッドを実装することができます。パブリック静的クラスに次のメソッドを含めてください:

public static ReadOnlyCollection<T> AsReadOnly<T>(this List<T> list) 
{ 
    return new ReadOnlyCollection<T>(list); 
} 
関連する問題