C# 为什么我总是在将泛型列表转换为相同的列表类型时出错?
我遇到了这个错误 无法从“System.Collections.Generic.List”转换为“HWC.DataAccess.FAREmailList”HWC.DataAccess 我不理解这个错误,因为它是相同的列表类型 这是我正在使用的方法C# 为什么我总是在将泛型列表转换为相同的列表类型时出错?,c#,generic-list,C#,Generic List,我遇到了这个错误 无法从“System.Collections.Generic.List”转换为“HWC.DataAccess.FAREmailList”HWC.DataAccess 我不理解这个错误,因为它是相同的列表类型 这是我正在使用的方法 public void PrepareToSendEmailFromFAR(int id) { HWC = new HWCEntities(); FileAReport far = HWC.FileAReports.Where(w =
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);
}
}
数据类是
public class FAREmailList
{
public string ContactName { get; set; }
public string EmailAddress { get; set; }
}
错误正在被抛出
SendEmailFromFAR(电子邮件列表)
我看不出问题是什么,是不是因为这些都在同一个类文件中?这个错误对我来说很有意义
emailList
的类型为List
,SendEmailFromFAR
将FAREmailList
作为输入。我认为错误是有意义的emailList
的类型为List
,SendEmailFromFAR
将FAREmailList
作为输入。FAREmailList
不继承自List
。我很确定你是想让sendmailfromfar(列表el)
代替。另外,可能没有清楚地命名不是列表的东西FAREmailList
。您的方法只会导出FAREmailList
的一个实例,但是您提供了一个list
FAREmailList
可能应该命名为FAREmail
。这很令人困惑。投票结束只是简单的打字错误。你可以在一句话中创建列表。您根本不需要匿名类型<代码>电子邮件列表=(从…选择新建FAREmail{dcx.Contact.ContactEmail,dcx.Contact.ContactName})。ToList()FAREmailList
不从列表继承。我很确定你是想让sendmailfromfar(列表el)
代替。另外,可能没有清楚地命名不是列表的东西FAREmailList
。您的方法只会导出FAREmailList
的一个实例,但是您提供了一个list
FAREmailList
可能应该命名为FAREmail
。这很令人困惑。投票结束只是简单的打字错误。你可以在一句话中创建列表。您根本不需要匿名类型<代码>电子邮件列表=(从…选择new FAREmail{dcx.Contact.ContactEmail,dcx.Contact.ContactName})。ToList()
public class FAREmailList
{
public string ContactName { get; set; }
public string EmailAddress { get; set; }
}