gpt4 book ai didi

c# - IEnumerable 与列表

转载 作者:行者123 更新时间:2023-11-30 14:42:03 25 4
gpt4 key购买 nike

这是对 IEnumerable 的正确使用吗?或者 shell 我使用 List ?
我需要输入什么 <PropertyInfo>

public static IEnumerable<PropertyInfo> GetNewsList<T>(int FID)
{
CatomWebNetDataContext pg = (CatomWebNetDataContext)db.GetDb();
return (from nls in pg.NewsCat_ITEMs
join vi in pg.VIRTUAL_ITEMs on nls.NC_VI_ID equals vi.VI_ID
where vi.VI_VF_ID == FID
select new { nls, vi });


}

 public List<PropertyInfo> GetPublic<T>(int FID)
{
CatomWebNetDataContext pg = (CatomWebNetDataContext)db.GetDb();
var nl = (from nls in pg.NewsCat_ITEMs
join vi in pg.VIRTUAL_ITEMs on nls.NC_VI_ID equals vi.VI_ID
where vi.VI_VF_ID == FID
select new { nls, vi });

List<PropertyInfo> retList = new List<PropertyInfo>();

foreach (var item in nl)
{
retList.Add(item);
}


return retList;
}

最佳答案

列表是一个类型的实例,它实现了 IEnumerable。这是什么意思?那如果你想返回 IEnumerable<PropertyInfo>你必须创建它的列表(或数组等)然后返回它。从方法的外部看起来你正在返回 IEnumerable<PropertyInfo>但实际上它将是 List<PropertyInfo> .

关于您的查询...您必须选择类型为 PropertyInfo 的对象,但现在你 ae 返回一些匿名类型。你应该这样尝试:

public static IEnumerable<PropertyInfo> GetNewsList<T>(int FID)
{
CatomWebNetDataContext pg = (CatomWebNetDataContext)db.GetDb();
var result from nls in pg.NewsCat_ITEMs
join vi in pg.VIRTUAL_ITEMs on nls.NC_VI_ID equals vi.VI_ID
where vi.VI_VF_ID == FID
select new PropertyInfo { SomeMember = nls, SomeOtherMember = vi };

return result.ToList();
}

关于c# - IEnumerable 与列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com