jjzjj

Enumerable

全部标签

c# - Enumerable.Average 和 OverflowException

也许是一个无用的问题:publicstaticdoubleAverage(thisIEnumerablesource,Funcselector)上述方法抛出的异常之一也是OverflowException:序列中元素的总和大于Int64.MaxValue。我假设此异常的原因是平均值的总和是使用long类型的变量S计算的?但是既然返回值是double类型,为什么设计者不选择让S也是double类型呢?谢谢 最佳答案 因为这个特定的重载知道您开始使用int值,所以它知道您没有使用十进制值。将您的每个值转换为double然后将double

c# - 为什么 Enumerable.Range 比直接 yield 循环更快?

下面的代码正在检查执行相同解决方案的三种不同方法的性能。publicstaticvoidMain(string[]args){//forloop{Stopwatchsw=Stopwatch.StartNew();intaccumulator=0;for(inti=1;iaccumulator+n);sw.Stop();Console.WriteLine("time={0};result={1}",sw.ElapsedMilliseconds,ret);}//self-madeIEnumerable{Stopwatchsw=Stopwatch.StartNew();varret=GetI

c# - 使用 LINQ 和 C# 的随机数组

我在MSDN杂志上阅读了一篇关于使用EnumerableclassinLINQ的文章生成一个随机数组。这篇文章使用了VB.NET,我不能立即确定C#中的等价物是什么:DimrndAsNewSystem.Random()Dimnumbers=Enumerable.Range(1,100)._OrderBy(Function()rnd.Next) 最佳答案 DeveloperFusionVB.NettoC#converter表示等效的C#代码是:System.Randomrnd=newSystem.Random();IEnumerabl

c# - dot net 是否有像 IEnumerable 这样带有 Count 属性的接口(interface)?

dotnet是否有像IEnumerable这样带有计数属性的接口(interface)?我知道IList和ICollection等接口(interface)确实提供了Count属性,但似乎这些接口(interface)首先是为可变数据结构设计的,用作只读接口(interface)似乎是事后才想到的——存在IsReadOnly字段和mutators抛出异常当此属性为真时,IMO对此提供了充分的证据。目前我正在使用一个名为IReadOnlyCollection的自定义接口(interface)(请参阅我自己对这篇文章的回答),但我很高兴知道其他替代方法。 最佳答

c# - Enumerable.Range 中的 A 到 Z 字符列表

我想从Enumerable.Range中创建一个列表。这个代码正确吗?SurnameStartLetterList=newList();Enumerable.Range(65,26).ToList().ForEach(character=>SurnameStartLetterList.Add((char)character));或者是否有更好的方法来制作此类列表? 最佳答案 大概是这样的?varsurnameList=Enumerable.Range('A','Z'-'A'+1).Select(c=>(char)c).ToList(

c# - 如何停止 Resharper 在 Enumerable.ToList 和 Select 建议之间切换

如果我使用Resharper代码清理功能,我会找到我的代码......varpersonInfos=persons.Select(Mapper.Map).ToList();改为...varpersonInfos=Enumerable.ToList(persons.Select(Mapper.Map));但随后Resharper为Enumerable.ToList提出了“Toextensionmethodinvocation”的建议,因此代码返回到...varpersonInfos=persons.Select(Mapper.Map).ToList();我已经检查了Resharper代码

c# - 具有固定平均值的随机数

我想生成100个介于1和10之间的随机数。但这100个随机数的平均值应该是7。我该怎么做?我正在做如下://generatingrandomnumberRandomrandom=newRandom();intvalue=random.Next(1,10);并将每个值存储在一个数组中。如果数组中100个项目的平均值不是7,那么我需要再获取100个随机数。任何人都可以建议更好的方法吗? 最佳答案 publicintRandomNumberThatAveragesToSeven(){//Chosenbyfairdiceroll//Guar

c# - 为什么 Enumerable.Cast 不使用用户定义的转换?

比如说,我们有2个类:publicclassA{publicinta;}publicclassB{publicintb;publicstaticimplicitoperatorB(Ax){returnnewB{b=x.a};}}那为什么Aa=newA{a=0};Bb=a;//OKListlistA=newList{newA{a=0}};ListlistB=listA.Cast().ToList();//throwsInvalidCastException对于explicit运算符也是如此。P.S.:手动(单独)转换每个元素是可行的ListlistB=listA.Select(s=>s)

c# - Enumerable.Sum() 溢出

嘿,我正在使用LINQ的Enumerable.Sum()扩展方法来计算哈希码,当代码变大时我遇到了OverflowExceptions问题.我尝试将调用放在uncheckedblock中,但这似乎没有帮助。该方法的MSDN文档说如果值太大就会抛出异常,但我检查了反射器,仅此而已:publicstaticintSum(thisIEnumerablesource){if(source==null){throwError.ArgumentNull("source");}intnum=0;foreach(intnum2insource){num+=num2;}returnnum;}基于此反编译

c# - 创建一个包含对象新实例的列表

创建包含同一对象的任意数量实例的列表的最佳方法是什么?即是否有更紧凑或更有效的方法来执行以下操作?staticListMyObjs=Enumerable.Range(0,100).Select(i=>newMyObj()).ToList();(Enumerable.Repeat会给我十个对同一个对象的引用,所以我认为它行不通。) 最佳答案 编辑以反射(reflect)此方法不工作。我很好奇你对Enumerable.Repeat的评论,所以我试了一下。//donotuse!ListmyList=Enumerable.Repeat(ne