web-dev-qa-db-ja.com

型 'System.Collections.Generic.IEnumerable <AnonymousType#1>'を 'System.Collections.Generic.List <string>に暗黙的に変換できません

私は以下のコードを持っています:

List<string> aa = (from char c in source
                   select new { Data = c.ToString() }).ToList();

しかし、どうですか

List<string> aa = (from char c1 in source
                   from char c2 in source
                   select new { Data = string.Concat(c1, ".", c2)).ToList<string>();

コンパイル中にエラーが発生する

タイプ'System.Collections.Generic.List<AnonymousType#1>''System.Collections.Generic.List<string>'に暗黙的に変換できません

助けが必要。

40
user372724
IEnumerable<string> e = (from char c in source
                        select new { Data = c.ToString() }).Select(t = > t.Data);
// or
IEnumerable<string> e = from char c in source
                        select c.ToString();
// or
IEnumerable<string> e = source.Select(c = > c.ToString());

その後、ToList()を呼び出すことができます。

List<string> l = (from char c in source
                  select new { Data = c.ToString() }).Select(t = > t.Data).ToList();
// or
List<string> l = (from char c in source
                  select c.ToString()).ToList();
// or
List<string> l = source.Select(c = > c.ToString()).ToList();
49
abatishchev

List<string>にしたい場合は、匿名型を取り除き、.ToList()呼び出しを追加します。

List<string> list = (from char c in source
                     select c.ToString()).ToList();
11
Jonathan Rupp

試してみる

var lst= (from char c in source select c.ToString()).ToList();
2
Fredou

"abcd"のような文字列としてソースがあり、次のようなリストを作成したい場合:

{ "a.a" },
{ "b.b" },
{ "c.c" },
{ "d.d" }

次に呼び出します:

List<string> list = source.Select(c => String.Concat(c, ".", c)).ToList();
2
abatishchev

答えは以下だと思います

List<string> aa = (from char c in source
                    select c.ToString() ).ToList();

List<string> aa2 = (from char c1 in source
                    from char c2 in source
                    select string.Concat(c1, ".", c2)).ToList();
1
Dean Chalk