草庐IT

ienumerable

全部标签

c# - IEnumerable 到用逗号分隔的字符串?

我有一个返回的数据表IDs,1,2,3,4,5,100,101我想将其转换为单个字符串值,即:,1,2,3,4,5,100,101我如何重写以下内容以获得单个字符串var_values=_tbl.AsEnumerable().Select(x=>x); 最佳答案 varsingleString=string.Join(",",_values.ToArray()); 关于c#-IEnumerable到用逗号分隔的字符串?,我们在StackOverflow上找到一个类似的问题:

c# - 在 IEnumerable.Select 中调用异步方法

我有以下代码,在R类型之间转换项目和L使用异步方法:classMyClass{publicasyncTaskMyMethodAsync(ListremoteItems){...ListmappedItems=newList();foreach(varremoteIteminremoteItems){mappedItems.Add(awaitMapToLocalObject(remoteItem));}//Dostuffwithmappeditems...}privateasyncTaskMapToLocalObject(RremoteObject);}是否可以使用IEnumerable

c# - Resharper:IEnumerable 的可能多重枚举

我正在使用新的Resharper版本6。在我的代码中的几个地方,它对一些文本加了下划线,并警告我可能存在可能的IEnumerable多重枚举。我理解这意味着什么,并在适当的时候采纳了建议,但在某些情况下,我不确定这是否真的很重要。如以下代码:varproperties=Context.ObjectStateManager.GetObjectStateEntry(this).GetModifiedProperties();if(properties.Contains("Property1")||properties.Contains("Property2")||properties.Co

c# - 如何有效地确定 IEnumerable 是否具有多个元素?

给定一个初始化的IEnumerable:IEnumerableenumerable;我想确定它是否有多个元素。我认为最明显的方法是:enumerable.Count()>1但是,我相信Count()枚举了整个集合,这对于这个用例来说是不必要的。例如,如果集合包含大量元素或从外部源提供其数据,这在性能方面可能会非常浪费。如何在不枚举超过2个元素的情况下做到这一点? 最佳答案 您可以通过结合System.Linq中的扩展方法以多种方式对此进行测试...下面是两个简单的示例:booltwoOrMore=enumerable.Skip(1)

c# - 我应该返回 IEnumerable 还是 IList?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我希望从一个方法中返回一个有序的项目列表。我的返回类型应该是IEnumerable还是IList?

c# - 使用 Unity 解析 IEnumerable<T>

Unity能否自动解析IEnumerable?假设我有一个带有这个构造函数的类:publicCoalescingParserSelector(IEnumerableparserBuilders)然后我在容器中配置单独的IParserBuilder实例:container.RegisterType();container.RegisterType();container.RegisterType();我可以在不必实现IEnumerable的自定义实现的情况下完成这项工作吗??varselector=container.Resolve();到目前为止,我还无法以任何简单的方式表达这一点,但

c# - 在返回 IEnumerable<T> 的方法中使用 IDisposable 对象

假设您有一个内部使用IDisposable对象(例如流读取器)的方法,并且yield返回从文件中读取的项目。像这样:publicIEnumerableRead(stringfilename){using(varfilestream=newFileStream(filename,FileMode.Open)){using(varreader=newStreamReader(filestream)){stringline;while((line=reader.ReadLine())!=null){yieldreturnnewYourObject(line);}}}}当我使用不迭代完整集合的

c# - yield break 是否等同于从返回 IEnumerable<T> 的方法返回 Enumerable<T>.Empty

这两种方法对我来说似乎是一样的publicIEnumerableGetNothing(){returnEnumerable.Empty();}publicIEnumerableGetLessThanNothing(){yieldbreak;}我在测试场景中分析了每一个,我没有发现速度上有什么明显的差异,但是yieldbreak版本稍微快一些。是否有理由使用一个而不是另一个?一个比另一个更容易阅读吗?是否存在对调用者重要的行为差异? 最佳答案 如果你打算总是返回一个空的枚举然后使用Enumerable.Empty()语法更具声明性恕我

c# - 无法使用集合初始值设定项初始化类型 '',因为它未实现 'System.Collections.IEnumerable'

我创建了一个类,其中包含三个类作为属性:publicclassFeeds{publicRentalsRentals{get;set;}publicAgentAgents{get;set;}publicNorthwindService.ServiceReference1.FileFile{get;set;}}我是这样使用它的:varquery=fromrinent.Rentalsjoinainent.Agentsonr.ListingAgentIDequalsa.AgentIDselectnewFeeds{a.AgentID,a.Alias,a.Bio,a.Email,a.Fax,r.F

c# - 为什么 IEnumerable<T> 在 C# 4 中是协变的?

在早期版本的C#中IEnumerable定义如下:publicinterfaceIEnumerable:IEnumerable从C#4开始,定义是:publicinterfaceIEnumerable:IEnumerable是否只是为了让LINQ表达式中烦人的转换消失?这不会引入与string[]相同的问题吗?在C#中(损坏的数组方差)?从兼容性的角度来看,如何添加协方差?较早的代码是否仍适用于较新版本的.NET或此处是否需要重新编译?反过来呢?以前使用此接口(interface)的代码是否在所有情况下都严格不变,或者某些用例现在的行为可能会有所不同? 最佳