【发布时间】:2017-09-29 13:39:45
【问题描述】:
我遇到了这个错误
无法从“System.Collections.Generic.List”转换为“HWC.DataAccess.FAREmailList”HWC.DataAccess
我不理解这个错误,因为它是相同的列表类型
这是我正在使用的方法
public void PrepareToSendEmailFromFAR(int id)
{
HWC = new HWCEntities();
FileAReport far = HWC.FileAReports.Where(w => w.FileAReportID == id).FirstOrDefault();
List<FAREmailList> emailList = null;
if(far.DistrictID != 0)
{
emailList = new List<FAREmailList>();
var query = from dcx in HWC.DistrictContactXREFs
where
dcx.DistrictID == far.DistrictID
select new
{
dcx.ContactID,
dcx.Contact.ContactEmail,
dcx.Contact.ContactName
};
foreach(var a in query)
{
emailList.Add(new FAREmailList
{
ContactName = a.ContactName,
EmailAddress = a.ContactEmail
});
}
SendEmailFromFAR(emailList);
}
if(far.DistrictID == 0)
{
emailList = new List<FAREmailList>();
var query = from dcx in HWC.DistrictContactXREFs
join d in HWC.Districts on dcx.DistrictID equals d.DistrictID into d_join
from d in d_join.DefaultIfEmpty()
join sp in HWC.StateProvinces on new { StateProvinceID = d.StateID } equals new { StateProvinceID = sp.StateProvinceID }
where
d.StateID == far.StateCountyID
select new
{
dcx.ContactID,
dcx.Contact.ContactEmail,
dcx.Contact.ContactName
};
foreach (var a in query)
{
emailList.Add(new FAREmailList
{
ContactName = a.ContactName,
EmailAddress = a.ContactEmail
});
}
SendEmailFromFAR(emailList);
}
}
这是接收 emailList 的方法
public void SendEmailFromFAR(FAREmailList el)
{
}
数据类是
public class FAREmailList
{
public string ContactName { get; set; }
public string EmailAddress { get; set; }
}
错误被抛出
SendEmailFromFAR(emailList);
我没有看到问题是什么,是因为这些都在同一个类文件中吗?
【问题讨论】:
-
FAREmailList不继承自List。我很确定您打算改用SendEmailFromFAR(List<FAREmailList> el)。也可能不要命名明显不是列表的东西FAREmailList。 -
您的方法需要
FAREmailList的单个实例,但您提供了List<FAREmailList >。 -
FAREmailList应该命名为FAREmail。这令人困惑。 -
投票结束是一个简单的错字。
-
您可以在一个语句中创建列表。您根本不需要匿名类型。
emailList = (from ... select new FAREmail { dcx.Contact.ContactEmail, dcx.Contact.ContactName }).ToList()
标签: c# generic-list