我得到一个像这样的对象列表:
IEnumerable personeller = (IEnumerable)sicil_model.OlayForm_Personel();
我正在这里循环
foreach (var personel in personeller)
{
//can't do anything...
}
我在personeller
内循环,我可以看到所有这样的元素
personeller[0] | { Id = 5, Kimlik = "Koray Durudoğan", EMail = "koray@outlook.com", DepartmanAdi = "Yazilim", PozisyonAdi = "Yazilim Geliştirme" }
personeller[1] | { Id = 6, Kimlik = "Hasan Pınar", EMail = "hasan@dincerelektronik.com.tr", DepartmanAdi = "Yazilim", PozisyonAdi = "Yazilim Geliştirme" }
.
.
.
就是这样..事情是,我无法访问对象的元素。例如,我怎样才能获得personeller [0]或者personler [1]的Kimlik的身份?
我做了这样的课程
public class Personel_Form
{
public int Id { get; set; }
public string Kimlik { get; set; }
public string EMail { get; set; }
public string DepartmanAdi { get; set; }
public string PozisyonAdi { get; set; }
}
但我无法在我的foreach循环中将'personel'转换为此类。
最后,以下是转换列表的方法:
public object OlayForm_Personel()
{
return (from p in Entity.GetEntity().Sicil
select new
{
Id = p.Id,
Kimlik = p.Isim + " " + p.Soyad,
EMail = p.EMail,
DepartmanAdi = p.Departman.DepartmanAdi,
PozisyonAdi = p.Pozisyon1.PozisyonAdi
}).ToList();
}
答案 0 :(得分:5)
从的句子中我循环到personeller中,我可以看到所有这样的元素和给定的样本数据我推断出函数返回的集合存储了Personel_Form
的项目类型。
两个选项:
你把它投入到非遗传的IEnumerable
中
项目为object
。你可以把它投射到正确的类型:
IEnumerable personeller = (IEnumerable)sicil_model.OlayForm_Personel();
foreach (var personel in personeller)
{
var personalForm = (Personel_Form)personel;
// personalForm.Kimlik
}
但更好的方法是:而不是使用非通用IEnumerable
使用通用IEnumerable<T>
:
IEnumerable<Personel_Form> personeller = sicil_model.OlayForm_Personel();
至于您的最新错误(来自评论),这是因为您的函数返回匿名类型而不是Personel_Form
类型。相反,如果实例化匿名对象,则实例化Personel_Form
:
public IEnumerable<Personel_Form> OlayForm_Personel()
{
return (from p in Entity.GetEntity().Sicil
select new Personel_Form
{
Id = p.Id,
Kimlik = p.Isim + " " + p.Soyad,
EMail = p.EMail,
DepartmanAdi = p.Departman.DepartmanAdi,
PozisyonAdi = p.Pozisyon1.PozisyonAdi
}).ToList();
}
答案 1 :(得分:0)
如果可能,您可以从
更改方法public object OlayForm_Personel()
{
return (from p in Entity.GetEntity().Sicil
select new
{
Id = p.Id,
Kimlik = p.Isim + " " + p.Soyad,
EMail = p.EMail,
DepartmanAdi = p.Departman.DepartmanAdi,
PozisyonAdi = p.Pozisyon1.PozisyonAdi
}).ToList();
}
到
public IEnumerable<Personel_Form> OlayForm_Personel()
{
return (from p in Entity.GetEntity().Sicil
select new Personel_Form
{
Id = p.Id,
Kimlik = p.Isim + " " + p.Soyad,
EMail = p.EMail,
DepartmanAdi = p.Departman.DepartmanAdi,
PozisyonAdi = p.Pozisyon1.PozisyonAdi
}).ToList();
}
然后您可以将您的消费代码更改为此
var personeller = sicil_model.OlayForm_Personel();
foreach (var personel in personeller)
{
// personel.Kimlik
}