当我写下面的查询表明:
时,我经常遇到错误无法隐含转换类型将
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);
}
}
答案 0 :(得分:5)
您正在尝试将一种类型的列表转换为完全不同类型的列表:
List<string> Total = Ma;
Ma
已被定义为匿名类型列表:
{ b.GhouseNo, b.Eroad, b.City }
您如何期望将包含三个字段的类型隐式转换为字符串?即使可能,也不意味着该类型的List
可以隐式转换为List<string>
。
您希望您的字符串列表实际包含哪些内容?其中一个属性?像这样?:
List<string> Total = Ma.Select(m => m.GhouseNo).ToList();
所有属性都加入了一些分隔符?像这样?:
List<string> Total = Me.Select(m => string.Join(", ", m.GhouseNo, m.Eroad, m.City));
您必须定义某种转换,从包含三个字段的类型到您想要的字符串。编译器无法猜测你想要做什么。
答案 1 :(得分:0)
Ma是一个匿名类,有三个属性:GhouseNo,Eroad和City。这个类不是字符串是合乎逻辑的。
也许你可以尝试这样的事情:
var Ma = context.PAFs
.Where(b => b.PostCode == txtaddrss.Text)
.Select(b => new { b.GhouseNo, b.Eroad, b.City }).ToList();
foreach (string name in Ma)
{
listBox1.Items.Add(name.GhouseNo + ", " + name.Eroad + ", " + name.City);
}