jjzjj

IEnumerable

全部标签

c# - 使用 LINQ 检查 IEnumerable<T?> 的所有项目是否具有相同的值

我有一个可为空的类型,例如SomeEnum?和一组值,例如IEnumerable.如何使用LINQ检查所有项目是否具有相同的值(并获取此值)? 最佳答案 data.Distinct().Count()==1;效果也很好。 关于c#-使用LINQ检查IEnumerable的所有项目是否具有相同的值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4354902/

c# - 为列表包装器实现 IEnumerable<T>

我有一个类,它只是一个列表的包装器,即publicclassWrapper{publicListTList{get;set;}publicWrapper(){TList=newList();}}我想制作Wrapper继承自IEnumerable,因此我可以使用以下语法:Wrapperwrapper=newWrapper(){2,4,3,6};知道如何实现哪个接口(interface)IEnumerable,或IEnumerable,如何定义方法体? 最佳答案 如果你实现ICollection您将获得所需的功能。更正:你实际上只需要实

c# - 在 View 中创建 HiddenFor IEnumerable<String>

我有一个IEnumerable属性publicIEnumerableChangesOthersResult{get;set;}我需要从ChangesOthersResult收集所有值并从View发回Controller。我如何遍历Ienumerable并创建将绑定(bind)回Controller中的ViewModel的隐藏字段?foreach(variteminModel.ChangesOthersResult){@Html.HiddenFor(x=>x.ChangesOthersResult);}给我原始SQL语句作为文本。 最佳答案

c# - 实现接口(interface)的结构与类

这个问题在这里已经有了答案:WhycannotIEnumerablebecastasIEnumerable?(3个答案)关闭8年前。privatestaticvoidTestStructInterface(){IFoofoo1=newFooClass();//worksIFoofoo2=newFooStruct();//worksIEnumerablefoos1=newList();//worksIEnumerablefoos2=newList();//compilererror}interfaceIFoo{stringThing{get;set;}}classFooClass:IFo

c# - IEnumerable Group 按用户指定的动态键列表

我有一个类publicclassEmpolyee{publicstringDesignation{get;set;}publicstringDiscipline{get;set;}publicintScale{get;set;}publicDateTimeDOB{get;set;}publicintSales{get;set;}}并以可枚举的方式记录所有员工ListEmployees;和一个字符串键列表,例如varKeys=newList(){"Designation","Scale","DOB"};假设列表“键”的元素是用户指定的,用户可以不指定或指定多个键元素。现在我想使用列表“K

c# - 为什么可空值序列的 Linq-to-Objects 总和本身可以为空?

像往常一样,int?表示System.Nullable(或System.Nullable`1[System.Int32])。假设您在内存中有一个IEnumerable(例如List),我们称它为seq;然后你可以找到它的总和:varseqSum=seq.Sum();当然这会转到扩展方法重载int?IEnumerable.Sum()(documentation)这实际上是System.Linq.Enumerable上的静态方法.但是,该方法永远不会返回null,那么为什么返回类型声明为Nullable?即使在seq的情况下是一个空集合,或者更一般地说,是一个所有元素都是null的集合类型

c# - LINQ Count() until,这样效率更高吗?

假设我想检查集合中是否至少有N个元素。这比做更好吗?Count()>=N使用:publicstaticboolAtLeast(thisIEnumerableenumerable,intmax){intcount=0;returnenumerable.Any(item=>++count>=max);}甚至publicstaticboolEquals(thisIEnumerableenumerable,intamount){returnenumerable.Take(amount).Count()==amount;}我如何进行基准测试?//////Returnswhethertheenum

c# - 契约前置条件引起的IEnumerable多重枚举

我有一个IEnumerable参数,该参数必须是非空的。如果有像下面这样的先决条件,那么集合将在它期间被枚举。但是下次我引用它时它会再次被枚举,从而导致在Resharper中出现“PossiblemultipleenumerationofIEnumerable”的警告。voidProcessOrders(IEnumerableorderIds){Contract.Requires((orderIds!=null)&&orderIds.Any());//enumeratesthecollection//BAD:collectionenumeratedagainforeach(variin

c# - 参数 : IEnumerable vs. IList 与 IReadOnlyCollection 的最佳实践

我知道什么时候会返回IEnumerable来自方法——当延迟执行有值(value)时。并返回List或IList几乎应该只在结果要被修改时才会出现,否则我会返回一个IReadOnlyCollection,所以调用者知道他得到的不是要修改的(这使得该方法甚至可以重用来自其他调用者的对象)。但是,在参数输入方面,我不太清楚。我可以拿IEnumerable,但如果我需要多次枚举怎么办?俗话说“对发送的内容要保守,对接受的内容要自由”建议采取IEnumerable很好,但我不太确定。例如,如果以下IEnumerable中没有元素参数,通过检查.Any()可以在此方法中节省大量工作首先,这需要T

c# - 为什么 IEnumerator<T> 会影响 IEnumerable<T> 的状态,即使 ienumerator 从未到达终点?

我很好奇为什么以下内容会在“最后”分配时抛出错误消息(文本阅读器关闭异常):IEnumerabletextRows=File.ReadLines(sourceTextFileName);IEnumeratortextEnumerator=textRows.GetEnumerator();stringfirst=textRows.First();stringlast=textRows.Last();但是以下执行正常:IEnumerabletextRows=File.ReadLines(sourceTextFileName);stringfirst=textRows.First();str