jjzjj

enumeration

全部标签

c# - 如何使用 Enumerable.Range 获取备用号码?

如果Start=0和Count=10那么如何使用Enumerable.Range()获取替代值输出应该像{0,2,4,6,8}如果Start=1且Count=10则{1,3,5,7,9}可以得到连续值vara=Enumerable.Range(0,10).ToList();但是如何获取备用值呢? 最佳答案 将Range应生成的项目数(它的第二个参数)减半,然后将结果值加倍将给出正确的项目数并确保增量为2。Enumerable.Range(0,5).Select(x=>x*2) 关于c#-

c# - 一种解析带有 'Flags' 的 .NET 枚举字符串或 int 值的方法

有一种使用以下方法计算枚举元素的好方法://memberTypeisenumtypeif(Enum.IsDefined(memberType,valueString)){returnEnum.Parse(memberType,valueString);}else{try{varunderlyingValue=Convert.ChangeType(valueString,Enum.GetUnderlyingType(memberType));if(Enum.IsDefined(memberType,underlyingValue)){returnunderlyingValue;}}cat

c# - 为什么 List<T>.Enumerator 比我的实现更快?

由于各种巨大的性能优势(在我的例子中),我发现自己处于必须滚动我自己的动态数组实现的位置。但是,在为我的版本创建一个枚举器并将效率与List使用的枚举器进行比较后,我有点困惑;Listone比我的版本快大约30-40%,尽管它要复杂得多。这是List枚举器实现的重要部分:publicstructEnumerator:IEnumerator,IDisposable,IEnumerator{privateListlist;privateintindex;privateintversion;privateTcurrent;internalEnumerator(Listlist){this.l

c# - EF 4.1 和 "Collection was modified; enumeration operation may not execute."异常

在过去的2天里,这让我抓狂。我有3个非常基本的类(好吧,为了便于阅读而减少了)publicclassEmployee{publicstringName{set;get;}virtualpublicEmployerEmployer{set;get;}publicEmployee(stringname){this.Name=name;}},//thisbasicallytiesEmployeeandhisroleinacompany.publicclassEmployeeRole{publicintId{set;get;}virtualpublicEmployeeEmployee{set;

c# - C# 中的大型标志枚举

大家好,有一个简短的问题,我似乎找不到任何关于......我正在做一个需要带有大量标志(最多40个)的标志枚举的项目,我真的不想为每个枚举值输入确切的掩码:publicenumMyEnumeration:ulong{Flag1=1,Flag2=2,Flag3=4,Flag4=8,Flag5=16,//...Flag16=65536,Flag17=65536*2,Flag18=65536*4,Flag19=65536*8,//...Flag32=65536*65536,Flag33=65536*65536*2//rightabouthereIstarttogetreallypissedo

c# - "Possible multiple enumeration of IEnumerable"与 "Parameter can be declared with base type"

在Resharper5中,以下代码导致list出现警告“Parametercanbedeclaredwithbasetype”:publicvoidDoSomething(Listlist){if(list.Any()){//...}foreach(variteminlist){//...}}在Resharper6中,情况并非如此。但是,如果我将方法更改为以下内容,我仍然会收到该警告:publicvoidDoSomething(Listlist){foreach(variteminlist){//...}}原因是,在这个版本中,list只枚举一次,所以改成IEnumerable不会自动

c# - Enumerable.Last<T>() 和 C# 数组

假设我有一个简单的数组:double[]myDoubleArray=newdouble[]{0,1,2,3,4,5};这是高效的吗:doublelast=myDoubleArray.Last();这样吗?doublelast=myDoubleArray[myDoubleArray.Length-1];即使可以进行上述优化,Last()是否会遍历整个数组?如果我传递了其他一些IEnumerable(比如已生成的一个),Last()将枚举序列。我更喜欢使用Last(),因为代码看起来更干净,但如果它枚举序列,我不会做出牺牲。 最佳答案

c# - 为什么 Enumerator 类的 Reset() 方法必须抛出 NotSupportedException()?

从我在http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx上看到的和JonSkeet的文章,c#规范本身就是这么说的。会是什么原因呢? 最佳答案 这不是我阅读C#spec的方式[文字文档]。第10.14.4节“枚举器对象”指出:...[E]numeratorobjectsdonotsupporttheIEnumerator.Resetmethod.InvokingthismethodcausesaSystem.NotSupportedE

javascript - 相当于 Javascript 中的 Ruby Enumerable#each_slice?

我正在寻找Javascript中Ruby的Enumerable#each_slice的等价物。我已经在使用很棒的underscore.js,它有each()、map()、inject()...基本上,在Ruby中,这个很棒的方法是这样做的:[1,2,3,4,5,6,7,8,9,10].each_slice(3){|a|pa}#outputsbelow[1,2,3][4,5,6][7,8,9][10] 最佳答案 这个怎么样:Array.prototype.each_slice=function(size,callback){for(v

php - PHP 中的动态枚举。可能的?懂事吗?

我正在构建一个API,它将接受来自iPhone应用程序的各种指标。应用程序程序员已要求API能够处理API尚不知道的指标类型。我想使用枚举来列出当前的指标类型,但是在将新指标推送到服务器时必须添加新指标。有没有人以前见过这个?我考虑过使用数据库而不是枚举,但这看起来真的很乱。有什么想法吗? 最佳答案 不要使用枚举。枚举主要用于预先知道整个值范围的情况;这显然不是你的情况。 关于php-PHP中的动态枚举。可能的?懂事吗?,我们在StackOverflow上找到一个类似的问题: