私はこのコードを持っています:
IList<string> stelle = stelleString.Split('-');
if (stelle.Contains("3"))
stelle.Add("8");
if (stelle.Contains("4"))
stelle.Add("6");
しかし、IListの.Split()の後のサイズは固定されているようです:System.NotSupportedException:コレクションは固定サイズでした。
この問題を解決するにはどうすればよいですか?
Split
メソッドは配列を返し、配列のサイズを変更することはできません。
ToList
拡張メソッドを使用して、配列からList<string>
を作成できます。
IList<string> stelle = stelleString.Split('-').ToList();
またはList<T>
コンストラクター:
IList<string> stelle = new List<string>(stelleString.Split('-'));
さらに、変数の型としてIList<T>
インターフェイスを使用したくない場合は、オブジェクトの実際の型を使用するだけです。
string[] stelle = stelleString.Split('-');
または:
List<string> stelle = stelleString.Split('-').ToList();
これにより、IList<T>
インターフェイスに限らず、サポートされていないメソッドを使用せずに、クラスで実行できることを正確に使用できます。
_string.Split
_は文字列を返します配列。これは確かに固定サイズになります。
結果を_List<string>
_コンストラクターに渡すことにより、それを_List<T>
_に変換できます。
_IList<string> stelle = new List<string>(stelleString.Split('-'));
_
または、可能な場合は、LINQ ToList()
演算子を使用できます。
_IList<string> stelle = stelleString.Split('-').ToList();
_
サイズが固定されているため、 string.Split はstring []を返します。要素の追加をサポートするには、splitの戻り値をList <string>インスタンスに渡す必要があります。
結果に対してToList()
を呼び出します。
IList<string> stelle = stelleString.Split('-').ToList();
String.splitは配列を返します。ただし、配列のサイズを変更することはできます。 VBです
ReDim perserve myarray(newlength minus one)