我有通过执行Select
LINQ查询返回一个列表中的问题。这是查询:问题有关LINQ选择和ToList()
var data = Repository<EducationString>
.Find()
.ToList()
.Select(p => new EducationStringModel() {
Id = p.Id,
Title = p.Title,
EducationDegree=p.EducationDegree })
.ToList();
正如你可以看到我用ToList()
2倍。我不知道为什么,但是当我删除第一ToList()
我看到这个错误,“索引数组的范围之外”,但同时具有ToList()
是没有问题的。
如果我说EducationDegree
在EducationStringModel
是IList<EducationDegree>
会有帮助吗?
是否有任何人谁知道什么原因呢?
@马克:其L2O
如果u需要看到的类:
公共类EducationStringModel { 私人IList的_educationDegree =新名单(); 公众的IList EducationDegree { 得到 { 如果(_educationDegree == NULL){ _educationDegree =新名单(); } return _educationDegree; } set {_educationDegree = value; }
}
public int? Id { get; set; }
public string Title { get; set; }
}
公共类EducationString {
私人字符串_title; 私立IList _educationExperiences; 私立IList _educationDegree;
virtual public string Title
{
get { return _title; }
set { _title = value; }
}
virtual public IList<EducationExperience> EducationExperiences
{
get
{
if (_educationExperiences == null)
{
_educationExperiences = new List<EducationExperience>();
}
return _educationExperiences;
}
set
{
_educationExperiences = value;
}
}
virtual public IList<EducationDegree> EducationDegree
{
get
{
if (_educationDegree == null)
{
_educationDegree = new List<EducationDegree>();
}
return _educationDegree;
}
set
{
_educationDegree = value;
}
}
}
什么是查找()返回? – 2010-10-30 08:03:58
你find方法应该返回的IEnumerable或IList的... – 2010-10-30 08:14:53