Невозможно неявно преобразовать тип '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>'
Нужна помощь.
Ответы
Ответ 1
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();
Ответ 2
Если вы хотите, чтобы он был List<string>
, избавиться от анонимного типа и добавить вызов .ToList()
:
List<string> list = (from char c in source
select c.ToString()).ToList();
Ответ 3
попробовать
var lst= (from char c in source select c.ToString()).ToList();
Ответ 4
Если у вас есть источник в виде строки типа "abcd"
и вы хотите создать такой список:
{ "a.a" },
{ "b.b" },
{ "c.c" },
{ "d.d" }
затем вызовите:
List<string> list = source.Select(c => String.Concat(c, ".", c)).ToList();
Ответ 5
Я думаю, что ответы ниже
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();