1

関数を使用する場合、.ToArray()変換中のリストに含まれていた文字を保持するために、配列のサイズを暗黙的に定義する必要がありますか?

String [] array = List.ToArray();

配列の機能を使用する必要があったため、これを実行しようとしました.GetValue()が、配列はサイズ 1 を維持しており、リストからのマテリアルを保持していません。.ToArray()を間違って使用しようとしていますか?

colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);

String [] cd = colAndDelimiter.ToArray();

これは、配列に影響を与えるすべてのコードです。リストをConsole.WriteLine()表示すると、テキスト全体が表示されます。リストの仕組みについて混乱するかもしれません。すべてを 1 つのアイテムとして格納しているのでしょうか。配列が 1 つの場所しか示していないのはそのためですか?

4

4 に答える 4

5

特定の文字を取得するために配列に変換する必要はありません。

text[index]必要な文字を取得するために使用するだけです。

配列として本当に必要な場合は、String.ToCharArray()- の配列ではcharなく の配列が必要ですstring

編集:

すべてを 1 つのアイテムとして格納しているのでしょうか。配列が 1 つの場所しか示していないのはそのためですか?

はい、そうです。string1 つを含む s のリストを作成していますstring: の内容全体text- あなたが望んでいるように見えるのは、それを文字ごとに分割することです。これは、上記のメソッドが達成するものです。

于 2013-01-22T01:48:44.187 に答える
2

正常に動作するはずですが、varオペレーターに確認してみてください。

var array = List.ToArray();

EG自体Array.GetValueの組み込み関数の代わりに使用する理由はありますか:List<T>

 string value = List.ElementAt(1);
 var values = List.GetRange(0, 5);
于 2013-01-22T01:38:13.530 に答える
1

あなたがしていることは問題ありません..しかし、のサイズ string[] cdがわからない場合は、次のようなことができます

var colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);
String[] cd = { }; 
cd =  colAndDelimiter.ToArray();

cd string value = cd[0]; 内のデータの位置を見つけます。

更新: 1 行に格納されている値に基づいてこれを行う場合は、cd変数 を次のように宣言しなくても実行できます。string[] cd;

var colAndDelimiter = new List<string>();
colAndDelimiter.Add("Hello, World, Week, Tuesday");
var cd = colAndDelimiter[0].Split(',');
于 2013-01-22T01:50:33.930 に答える
0

Listオブジェクトが項目を含む IEnumerable (または類似のもの) である限り、これは実際にリストを配列に変換する必要があります。

この配列を作成したら、List に要素を追加しても、Array には追加されないことに注意してください。

于 2013-01-22T01:38:57.093 に答える