将generic.List <Anonmoustype>转换为genreic.list <string>?

Che*_*rry 0 c# generics

当我写下面的查询时,我收到频繁的错误,指出:

不能隐含转换类型转换generic.List<Anonmoustype>为genreic.list<string>?

我无法理清这是什么意思?

我在下面的代码中分配Total = Ma时收到错误

这是代码:

using (var context = new SAIntegrationEntities())
{                
    var Ma = context.PAFs
        .Where(b => b.PostCode == txtaddrss.Text)
        .Select(b => new { b.GhouseNo, b.Eroad, b.City }).ToList();

    List<string> Total = Ma;

    foreach (string name in Total)
    {
        listBox1.Items.Add(name);
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 5

您正在尝试将一种类型的列表转换为完全不同类型的列表:

List<string> Total = Ma;
Run Code Online (Sandbox Code Playgroud)

Ma 已被定义为匿名类型的列表:

{ b.GhouseNo, b.Eroad, b.City }
Run Code Online (Sandbox Code Playgroud)

您如何期望将具有三个字段的类型隐式转换为字符串?即使它可以,但这并不意味着List该类型的一个可以隐式转换为List<string>.

你希望你的字符串列表实际包含什么?其中一个属性?像这样?:

List<string> Total = Ma.Select(m => m.GhouseNo).ToList();
Run Code Online (Sandbox Code Playgroud)

所有的属性,由一些分隔符加入?像这样?:

List<string> Total = Me.Select(m => string.Join(", ", m.GhouseNo, m.Eroad, m.City));
Run Code Online (Sandbox Code Playgroud)

您必须定义从包含三个字段的类型到所需字符串的某种转换.编译器无法猜测您正在尝试做什么.