草庐IT

ienumerator

全部标签

c# - 如何创建单例 IEnumerable?

C#是否提供了一些很好的方法来转换类型为T的单个实体?至IEnumerable?我能想到的唯一方法是这样的:Tentity=newT();IEnumerable=newList{entity}.AsEnumerable();而且我想应该有更好的方法。 最佳答案 您调用AsEnumerable()是不必要的。AsEnumerable通常用于目标对象实现IQueryable的情况但您想强制它使用LINQ-to-Objects(例如,在与LINQ兼容的ORM上进行客户端过滤时)。自List工具IEnumerable但不是IQueryabl

c# - 如何创建单例 IEnumerable?

C#是否提供了一些很好的方法来转换类型为T的单个实体?至IEnumerable?我能想到的唯一方法是这样的:Tentity=newT();IEnumerable=newList{entity}.AsEnumerable();而且我想应该有更好的方法。 最佳答案 您调用AsEnumerable()是不必要的。AsEnumerable通常用于目标对象实现IQueryable的情况但您想强制它使用LINQ-to-Objects(例如,在与LINQ兼容的ORM上进行客户端过滤时)。自List工具IEnumerable但不是IQueryabl

c# - 将单个实例对象作为 IEnumerable 返回

我有类foo的实例,我想将它作为IEnumerable返回。我可以在不创建新列表等的情况下完成吗?可能像下面这样:IEnumerable.fromInstance(foo) 最佳答案 选项:创建集合类的实例,例如数组或列表。默认情况下,这将是可变的,如果这是您希望能够在API中分发的序列,这将有点无益。你可以创建一个ReadOnlyCollection包装这样的集合。根据Botz3000的回答编写您自己的迭代器block使用Enumerable.Repeat(item,1)来自LINQ,如果您使用的是.NET3.5。这里的最佳答案取

c# - 将单个实例对象作为 IEnumerable 返回

我有类foo的实例,我想将它作为IEnumerable返回。我可以在不创建新列表等的情况下完成吗?可能像下面这样:IEnumerable.fromInstance(foo) 最佳答案 选项:创建集合类的实例,例如数组或列表。默认情况下,这将是可变的,如果这是您希望能够在API中分发的序列,这将有点无益。你可以创建一个ReadOnlyCollection包装这样的集合。根据Botz3000的回答编写您自己的迭代器block使用Enumerable.Repeat(item,1)来自LINQ,如果您使用的是.NET3.5。这里的最佳答案取

c# - Html.DropDownList 所选值不起作用(将构造函数与 IEnumerable<SelectListItem> 一起使用)

我有一个问题,即所选值不适用于Html.DropDownList帮助器方法。见下文:这是我的Controller:publicActionResultEdit(intid=0){NewsEventitem=GetItem(id);ViewBag.NewsItemId=newSelectList(ViewBag.NewsItemId.Items,"Id","Name",item.NewsItemId);returnView(item);}这是我的观点:@Html.DropDownList("NewsItemId",ViewBag.NewsItemIdasSelectList,string

c# - Html.DropDownList 所选值不起作用(将构造函数与 IEnumerable<SelectListItem> 一起使用)

我有一个问题,即所选值不适用于Html.DropDownList帮助器方法。见下文:这是我的Controller:publicActionResultEdit(intid=0){NewsEventitem=GetItem(id);ViewBag.NewsItemId=newSelectList(ViewBag.NewsItemId.Items,"Id","Name",item.NewsItemId);returnView(item);}这是我的观点:@Html.DropDownList("NewsItemId",ViewBag.NewsItemIdasSelectList,string

c# - 如何在 C# 中将类设为 IEnumerable?

所以我在其中有一个类和一个通用列表,但它是私有(private)的。classContacts{Listcontacts;...}我想让类(class)像这样工作:foreach(Contactincontacts)....;像这样(不工作):Contactsc;foreach(Contactinc)....;在上面的示例中,Contact类实例c必须返回联系人中的每个项目(c的私有(private)成员)我该怎么做?我知道它必须是带有yieldreturn的IEnumerable,但是在哪里声明呢? 最佳答案 实现IEnumera

c# - 如何在 C# 中将类设为 IEnumerable?

所以我在其中有一个类和一个通用列表,但它是私有(private)的。classContacts{Listcontacts;...}我想让类(class)像这样工作:foreach(Contactincontacts)....;像这样(不工作):Contactsc;foreach(Contactinc)....;在上面的示例中,Contact类实例c必须返回联系人中的每个项目(c的私有(private)成员)我该怎么做?我知道它必须是带有yieldreturn的IEnumerable,但是在哪里声明呢? 最佳答案 实现IEnumera

c# - 缓存 IEnumerable

publicIEnumerableListModules(){foreach(XElementminSource.Descendants("Module")){yieldreturnnewModuleData(m.Element("ModuleID").Value);}}最初上面的代码很棒,因为如果不需要,则无需评估整个集合。但是,一旦所有Module都被枚举一次,在没有变化的情况下重复查询XDocument会变得更加昂贵。因此,作为性能改进:publicIEnumerableListModules(){if(Modules==null){Modules=newList();forea

c# - 缓存 IEnumerable

publicIEnumerableListModules(){foreach(XElementminSource.Descendants("Module")){yieldreturnnewModuleData(m.Element("ModuleID").Value);}}最初上面的代码很棒,因为如果不需要,则无需评估整个集合。但是,一旦所有Module都被枚举一次,在没有变化的情况下重复查询XDocument会变得更加昂贵。因此,作为性能改进:publicIEnumerableListModules(){if(Modules==null){Modules=newList();forea