草庐IT

length_short

全部标签

c# - .NET System.String.Length 属性采用什么时间顺序?

有人建议我避免重复调用String.Length,因为每次调用时都会重新计算它。我假设String.Length在O(1)时间内运行。String.Length比这更复杂吗? 最佳答案 这是个糟糕的建议-String.Length确实是O(1)。它不像C中的strlen。诚然,在thedocs中它不是保证据我所知,但字符串的不变性使得O(1)成为不是的一件非常愚蠢的事情。(不仅是O(1),还有一个非常快的恒定时间。)坦率地说,如果有人提供此类建议,我会对他们可能提供的其他建议更加怀疑......

c# - 使用小数据类型(例如 short 而不是 int)是否会减少内存使用量?

我的问题基本上是关于C#编译器如何处理小型数据类型的内存分配。我确实知道,例如像add这样的运算符是在int上定义的,而不是在short上定义的,因此计算将被执行,就好像shorts是int成员一样。假设如下:没有与选择short作为数据类型相关的业务逻辑/验证逻辑我们不会对不安全的代码做任何事情是否尽可能使用short数据类型来减少我的应用程序的内存占用,是否建议这样做?或者使用short等不值得付出努力,因为编译器会分配int32的全部内存量,并在进行算术运算时添加额外的强制转换。任何有关假定的运行时性能影响的链接都将不胜感激。相关问题:WhyshouldIuseintinstea

c# - 背靠背 for 循环中的 int、short、byte 性能

(背景:WhyshouldIuseintinsteadofabyteorshortinC#)为了满足我自己对使用“适当大小”整数与“优化”整数的优缺点的好奇心,我编写了以下代码,这些代码强化了我之前对.Net中的int性能的看法(并对此进行了解释在上面的链接中)这是针对int性能而不是short或byte进行了优化。DateTimet;longa,b,c;t=DateTime.Now;for(intindex=0;index这在......方面给出了大致一致的结果~950000~2000000~1700000这符合我的预期。然而,当我尝试像这样为每种数据类型重复循环时......t=D

c# - Array.Length 与 Array.Count

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:countvslengthvssizeinacollection在.NET中,几乎所有集合都有.Count属性。有时我想知道是否直接将它放在Array上,而不是通过ICollection会更好。这只是你在脑海中为数组做一个异常(exception)而已。那么在这种情况下是“更正确”还是“更统一”更好?

c# - 区分 short、int、long 真的很重要吗?

在我的C#应用程序中,我想知道对较小的数字使用short,对较大的数字使用int等是否真的很重要。内存消耗真的很重要吗? 最佳答案 除非您以某种结构将大量这些打包在一起,否则它可能根本不会影响内存消耗。使用特定整数类型的最佳理由是与API的兼容性。除此之外,只需确保您选择的类型有足够的范围来涵盖您需要的值。除此之外,对于简单的局部变量,它并不重要。 关于c#-区分short、int、long真的很重要吗?,我们在StackOverflow上找到一个类似的问题:

c# - 这段代码怎么可能: "ArgumentOutOfRangeException: startIndex cannot be larger than length of string"?

我的C#代码中有以下方法://////Removesthefirst(leftmost)occurenceofafroma.//////Thestringtoremovethefrom.Cannotbenull.///Thesubstringtolookforandremovefromthe.Cannotbenull.//////Therestofthe,afterthefirst(leftmost)occurenceoftheinit(ifany)hasbeenremoved.////////////Ifthedoesnotoccurwithinthe,theisreturnedin

c# - 获取当前文件长度/FileInfo.Length 缓存和陈旧信息

我正在跟踪一个文件夹及其文件长度,至少其中一个文件仍在写入。我必须不断更新我用于其他目的的每个文件长度的记录。Update方法每15秒调用一次,如果文件长度与上次更新中确定的长度不同,则更新文件的属性。更新方法看起来像这样:vardirectoryInfo=newDirectoryInfo(archiveFolder);vararchiveFiles=directoryInfo.GetFiles().OrderByDescending(f=>f.CreationTimeUtc);foreach(FileInfofiinarchiveFiles){//checkiffileexisted

javascript - DataTables 无法读取未定义的属性 'length'

下面是文档准备函数Scripttype="text/javascript"charset="utf-8">$(document).ready(function(){$('#example').dataTable({"bProcessing":true,"bServerSide":true,"sAjaxSource":"GetUser.ashx","sServerMethod":"POST","sAjaxDataProp":"","aoColumnDefs":[{"aTargets":[0],"mData":"download_link","mRender":function(data,

javascript - 为什么在 .length 之后没有 () 在 Javascript 中?

我是一名业余程序员,我研究过多种语言,几乎总是发现“长度”是一种方法/函数。我受过训练,据我所知,任何方法调用都必须在调用后加上括号,即使没有参数也是如此。在Javascript中不是这样......为什么?C#.length()返回值.lenth()等... 最佳答案 在Javascript中它是一个属性,而不是一个函数。在像C这样的语言中,长度函数必须循环遍历整个字符串以找到结尾,将它作为一个函数是合乎逻辑的(因为它会做一些工作)。在将长度保留为单独值的语言中,将其作为属性来代替是合乎逻辑的(因为它只读取已经存在的值)。

javascript - 为什么 ({}+{}).length 等于 30?

{}到字符串?谁能告诉我为什么是30?({}+{}).length//=30?但这是0?([]+[]).length//=0? 最佳答案 这是预期的行为。当您在2个数组上使用+运算符时,两个数组都将转换为字符串,这与调用.join(',')基本相同。如果两个数组都是空的,您将得到两个空字符串的连接,得到一个长度为0的空字符串。([]+[])=""但是对于对象,将它们转换为字符串的方式是不同的。默认情况下,+运算符会将对象转换为字符串,这将导致字符串"[objectObject]"执行两次,您将得到一个30个字符长的字符串。({}+{