草庐IT

ienumerator

全部标签

c# - 确定集合是否属于 IEnumerable<T> 类型

如何判断对象是否为IEnumerable类型?代码:namespaceNS{classProgram{staticIEnumerableGetInts(){yieldreturn1;}staticvoidMain(){vari=GetInts();vartype=i.GetType();Console.WriteLine(type.ToString());}}}输出:NS.1.Program+d__0如果我将GetInts更改为返回IList,则一切正常输出是:System.Collections.Generic.List`1[System.Int32]这会返回false:namesp

c# - 如何同时遍历两个 IEnumerables?

我有两个枚举:IEnumerablelist1和IEnumerablelist2.我想同时遍历它们:foreach((a,b)in(list1,list2)){//useaandb}如果它们不包含相同数量的元素,则应抛出异常。执行此操作的最佳方法是什么? 最佳答案 你想要像Zip这样的东西LINQ运算符-但.NET4中的版本总是在任一序列完成时截断。MoreLINQimplementation有一个EquiZip方法,它会抛出一个InvalidOperationException。varzipped=list1.EquiZip(li

c# - 参数 IEnumerable<T> c#

为什么我不能使用带参数的IEnumerable?这会被修复吗?我真的希望他们重写旧库以使用泛型... 最佳答案 WhycantIuseanIEnumerablewithparams?问题的前提是设计团队必须提供不向语言添加功能的理由。这个假设是错误的。相反,为了让您使用某个功能,需要对其进行思考、设计、指定、实现、测试、记录和发布。所有这些都有很大的成本。已经想到并设计了“paramsenumerable”特性。它从未被指定、实现、测试、记录或运送。因此,您不能使用该功能。更新:截至撰写本文时-2015年初-现已指定,但在2014年

c# - List 和 IEnumerable 之间的实际区别

这个问题在这里已经有了答案:IEnumerablevsList-WhattoUse?Howdotheywork?(11个答案)关闭9年前。通过阅读类似的帖子,我了解到List是一种IEnumerable。但我真的很想知道这两者之间的实际区别是什么。对于一直使用List而从未使用过IEnumerable的人:两者之间的实际区别是什么?在什么情况下,其中一个比另一个更好?这是一个实际例子:我们要存储四个字符串,按字母顺序排列它们,将它们传递给另一个函数,然后向用户显示结果。我们会使用什么?为什么?希望有人能帮我解决这个问题或为我指明正确的方向。提前致谢!

c# - 如何使用 Newtonsoft JSON.NET 将 JSON 反序列化为 IEnumerable<BaseType>

给定这个JSON:[{"$id":"1","$type":"MyAssembly.ClassA,MyAssembly","Email":"me@here.com",},{"$id":"2","$type":"MyAssembly.ClassB,MyAssembly","Email":"me@here.com",}]和这些类:publicabstractclassBaseClass{publicstringEmail;}publicclassClassA:BaseClass{}publicclassClassB:BaseClass{}如何将JSON反序列化为:IEnumerabledes

c# - 将 IEnumerable 转换为 DataTable

是否有将IEnumerable转换为DataTable的好方法?我可以使用反射来获取属性和值,但这似乎有点低效,是否有内置的东西?(我知道这样的例子:ObtainDataTableFromIEnumerable)编辑:这question通知我处理空值时出现问题。我在下面编写的代码正确处理了空值。publicstaticDataTableToDataTable(thisIEnumerableitems){//Createtheresulttable,andgatherallpropertiesofaTDataTabletable=newDataTable(typeof(T).Name);

c# - Resharper解释 "Possible multiple enumeration of IEnumerable"的示例代码

有时Resharper会警告:PossiblemultipleenumerationofIEnumerable有anSOquestiononhowtohandlethisissue,ReSharper站点也解释了一些事情here.它有一些示例代码告诉您改为执行此操作:IEnumerablenames=GetNames().ToList();我的问题是关于这个具体建议的:这不会仍然导致在2个for-each循环中对集合进行两次枚举吗? 最佳答案 GetNames()返回一个IEnumerable。因此,如果您存储该结果:IEnumer

c# - 为什么 C# 多维数组不实现 IEnumerable<T>?

我刚刚注意到C#中的多维数组没有实现IEnumerable,虽然它确实实现了IEnumerable.对于一维数组,IEnumerable和IEnumerable已实现。为什么会有这种差异?如果一个多维数组是IEnumerable,当然它也应该实现通用版本?我注意到这一点是因为我试图在多维数组上使用扩展方法,除非你使用Cast否则它会失败。或类似的;所以我绝对可以看到使多维数组实现的论点IEnumerable.为了用代码澄清我的问题,我希望下面的代码打印出true四次,而它实际打印true,false,true,true:int[]singleDimensionArray=newint[

c# - 如何批量循环遍历IEnumerable

这个问题在这里已经有了答案:CreatebatchesinLINQ(22个答案)关闭3年前。我正在开发一个C#程序,它有一个存储400万用户ID的“IEnumerable用户”。我需要遍历IEnumerable并每次提取一批1000个ID,以在另一种方法中执行一些操作。我如何从IEnumerable开始一次提取1000个ID,做一些其他事情,然后获取下一批1000等等?这可能吗?

c# - System.Collections.Generic.IEnumerable' 不包含 'ToList' 的任何定义

问题来了。我正在从ViewPage获取IEnumerable,当我尝试将其转换为List时,它显示如下错误:'System.Collections.Generic.IEnumerable'doesnotcontainadefinitionfor'ToList'andnoextensionmethod'ToList'acceptingafirstargumentoftype'System.Collections.Generic.IEnumerable'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)这是我的C