0

私がやろうとしているのは、linq を使用して文字列を文字列のリストに変換することです。次のコード行を試します。

value = "one,two,three,four";

List<string> arr = value.Split(',').Select(s => s.ToList());

しかし、私はエラーが発生しています:

エラー 1 型 'System.Collections.Generic.IEnumerable>' を 'System.Collections.Generic.List' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)

誰かが助けを提供できれば、それは素晴らしいことです。

4

8 に答える 8

10

こんにちは、あなたは試すことができます

 value.Split(',').ToList();
于 2012-07-31T13:36:58.360 に答える
3

ToList個々の配列要素ごと、つまり各文字列ごとに があります。stringを実装しているため、その呼び出し自体は有効ですが、それはあなたが望むものではないIEnumerable<char>を作成していることを意味します。IEnumerable<List<char>>

まったく必要ないと思いますSelect-ただ使用してください:

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:10.527 に答える
2

リスト コンストラクターの 1 つは、列挙可能な を受け取ります

var arr = new List<string>(value.Split(','));

なぜ人々がすべてに対してlinq拡張を主張するのかわかりません...

于 2012-07-31T13:37:10.913 に答える
1
value = "one,two,three,four";

List<string> arr = value.Split(',').Select(s => s).ToList();

またはより簡単:

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:36:40.883 に答える
1

select は必要ありませんが、それでも使用したい場合は、次のようにする必要があります。

  List<string> arr = value.Split(',').Select(s => s).ToList();

または、次のように簡単に実行できます。

  List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:28.417 に答える
0

ここで LINQ を使用する必要はありません。代わりに、次のようにするだけです。

string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:42:13.643 に答える
0

Select は必要ありません。

value = "one,two,three,four";

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:53.220 に答える
0
string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:38:03.347 に答える