获取 IEnumerable 的元素
Get elements of an IEnumerable
我正在获取这样的对象列表:
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] 的 Id 或 personeller[1] 的 Kimlik?
我做了一个class这样的
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' 转换为这个 class。
最后,转表的方法如下:
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();
}
从你的句子 我在 personeller 中循环,我可以看到所有像这样的元素 和给定的样本数据我推断函数返回的集合存储了Personel_Form
类型。
两个选项:
您正在将其投射到持有
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();
至于你最近的错误(来自评论)是因为你的函数 returns 是匿名类型而不是 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();
}
如果可能的话,你可以改变你的方法
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
}
我正在获取这样的对象列表:
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] 的 Id 或 personeller[1] 的 Kimlik?
我做了一个class这样的
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' 转换为这个 class。
最后,转表的方法如下:
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();
}
从你的句子 我在 personeller 中循环,我可以看到所有像这样的元素 和给定的样本数据我推断函数返回的集合存储了Personel_Form
类型。
两个选项:
您正在将其投射到持有
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();
至于你最近的错误(来自评论)是因为你的函数 returns 是匿名类型而不是 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();
}
如果可能的话,你可以改变你的方法
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
}