jjzjj

IEnumerable

全部标签

c# - 将对象转换为 IEnumerable<T>,其中 T 未知

我正在尝试使用Reflection并遇到以下情况。在下面的代码中,我们假设“obj”的类型可以是IEnumerable或ICollection或IList.我想将此System.Object转换为IEnumerable总是(因为ICollection和IList继承自IEnumerable无论如何),所以我想枚举集合并使用反射来编写单个项目。这背后的动机是我只是想看看一般情况下,序列化程序是否会序列化数据,因此我正在尝试模拟这种情况,希望也能理解反射。我考虑过将对象强制转换为非通用IEnumerable,但认为这会导致不必要的对象装箱,比如IEnumerable的实际实例。...我的想

c# - IEnumerator 中的 IEnumerable

我写过关于自定义IEnumerator的文章。从中生成IEnumerable的最简单方法是什么?理想的解决方案(一行代码)是是否有一些用于该目的的类。还是我必须自己创建? 最佳答案 不幸的是,没有内置方法。我有这种经常使用的扩展方法:staticIEnumerableIterate(thisIEnumeratoriterator){while(iterator.MoveNext())yieldreturniterator.Current;} 关于c#-IEnumerator中的IEnum

c# - 在 ASP.NET Core 2.0 中将 DataTable 转换为 IEnumerable<T>

我需要从我从另一个系统收到的作为输入的DataTable生成一个“IEnumerable”。以下代码适用于ASP.NET4.6.1。publicstaticIEnumerableStaffAssignmentsUsingStoredProcedure(System.Data.DataTabledataTable){vardata=dataTable.AsEnumerable().Select(row=>newUserAssignmentDto{Id=((string)row["AssignmentNumber"]),Position=(string)row["EsrPositionTi

c# - 将 IEnumerable<T> 转换为字符串 []

我有一个名为Product的实体classProduct{publicId{get;set;}publicName{get;set;}}我有所有产品的list:IEnumerableproducts=_productRepository.GetAll()我想从这个产品列表中获取一个字符串数组,这个数组将包含产品ID+产品名称,所以当我尝试使用以下代码转换它时:string[]s=products.Cast().ToArray();我得到以下异常:Unabletocastobjectoftype'Product'totype'System.String'这个异常真的很有趣,所以如果我有一

c# - 如何将 T 类型的单个值转换为 IEnumerable<T>?

这个问题在这里已经有了答案:PassingasingleitemasIEnumerable(19个回答)关闭5年前。必须有一个很好的标准方法来做到这一点,但是我从事的每个项目都必须编写自己的统一方法,或者创建一个内联数组等。(我希望这会很快作为一个问题的副本而关闭,并且有一些很好的答案)

c# - IEnumerable 对象是否需要空值检查?

varselectedRows=fromdrowinugTable.Rows.Cast().Where(drow=>drow!=null&&drow.Selected)selectdrow;if(selectedRows.Count()==1){//dosomethingwithselectedrows}根据上面的语句,我是否需要检查selectedRows的Null变量?selectedRows是一个IEnumerable变量。 最佳答案 你不需要检查是否selectedRows是null.返回的IEnumerable可能是空的,

c# - Asp.Net Web Api - 为 IEnumerable<T> 返回 404 Get When null

我正在使用Asp.NetWebApi的发布版本创建API。如果未找到结果,我将尝试传回正确的响应代码(404)。首先获取版本(抛出多个枚举错误):publicIEnumerableGet(intid,stringformat){vardb=newDbEntities();varresult=db.pr_ApiSelectMyObjectType(store,id,format).AsEnumerable();if(result.Any()){returnresult;}varresponse=newHttpResponseMessage(HttpStatusCode.NotFound)

c# - 无限期地重复可枚举

是否有无限重复可枚举的可枚举扩展方法?例如,给定一个返回的枚举:["a","b","c"]。我想要一个返回无限重复序列的方法["a","b","c","a","b","c","a","b","c"...]这听起来有点像Observable.Repeat,除了我想对IEnumerables进行操作。Enumerable.Repeat仅从单个元素生成枚举。 最佳答案 我不知道LINQ中内置了什么,但是真的可以很容易地创建自己的东西:publicstaticIEnumerableRepeatIndefinitely(thisIEnumer

c# - 可以多次重用 IEnumerable 集合吗?

基本上我想知道随后是否可以在代码中多次使用枚举。无论您是否提前中断,枚举总是会在下面的每个foreach案例中重置,以便为我们提供从效果集合开始到结束的一致枚举吗?vareffects=this.EffectsRecursive;foreach(Effecteffectineffects){...}foreach(Effecteffectineffects){if(effect.Name="Pixelate")break;}foreach(Effecteffectineffects){...}编辑:EffectsRecursive的实现是这样的:publicIEnumerableEff

c# - 如何将数据读取器转换为动态查询结果

我有一个View,通常从WebMatrix查询(IEnumerable数据类型)获取查询结果,并将结果显示在表格中:@modelMySite.Models.Entity@foreach(varrowinModel.Data){@foreach(varcolumninrow.Columns){@column:@row[column]}}这是我查询数据库的模型:publicclassEntity{publicdynamicData{get;set;}publicEntity(Stringtable){if(table=="User"||table=="Group){WebMatrix.Da