我需要向后移动一个数组,所以我有这样的代码:
for (int i = myArray.Length - 1; i >= 0; i--)
{
// Do something
myArray[i] = 42;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
更新:我希望C#可能有一些内置机制,如:
foreachbackwards (int i in myArray)
{
// so easy
}
Run Code Online (Sandbox Code Playgroud)
更新2:有是更好的方法.符文获奖:
for (int i = myArray.Length; i-- > 0; )
{
//do something
}
//or
for (int i = myArray.Length; i --> 0; )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
在常规C中看起来更好(感谢Twotymz):
for (int i = lengthOfArray; i--; )
{
//do something
}
Run Code Online (Sandbox Code Playgroud) 我有一张桌子:
MyTable
config as XML
title as varchar(255)
Run Code Online (Sandbox Code Playgroud)
在MyTable.config中,我有以下结构的XML:
<configuration pagetitle="myConfig">
<column>
<row>
<component id="1" type="MyPiece" title="My Title" text="junk" />
</row>
</column>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我需要一个脚本将MyTable.text的值注入我的配置XML中的组件节点的text属性中.
我知道这是错的,但我想做类似的事情:
UPDATE MyTable SET config.configuration.column.row.component.title = title
Run Code Online (Sandbox Code Playgroud) 我非常喜欢Nant.我用NAnt编写了很多脚本.这是一个很棒的小工具.
由于NAnt是1.0之前的,当出现问题时,我经常认为如果这是NAnt本身的问题,但情况并非总是如此.
一个有趣的例子:运行oracle脚本后,我解析了日志输出,以确保没有问题.我用一个小的日志文件测试它,它很好.
我使用该任务将文件内容加载到字符串属性并使用正则表达式来搜索错误.
当我将这个脚本用于大型日志文件时,我停止在底部收到"build failed"消息,因为我正在打印错误消息.
因为"构建失败"隐藏在顶部,我认为NAnt崩溃,但它工作正常.
NAnt最好有1.0版本.任何原因为什么不呢?
您是否遵循源代码中包含长行的标准?您觉得哪种线路长度最舒适?
有时我发现有人在宽屏显示器上编程并喜欢用它的全宽来显示源代码.我更喜欢较短的线条,大约80-100个字符,但我很难说服同事随着宽屏设备的日益普及.
编辑:
类似的问题:
我想写一个正则表达式,它将用链接替换单词Paris,因为只有单词没有准备好作为链接的一部分.
例:
i'm living <a href="Paris" atl="Paris link">in Paris</a>, near Paris <a href="gare">Gare du Nord</a>, i love Paris.
Run Code Online (Sandbox Code Playgroud)
会成为
i'm living.........near <a href="">Paris</a>..........i love <a href="">Paris</a>.
Run Code Online (Sandbox Code Playgroud) 在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方法是什么?*nix和Windows平台的奖励积分.
似乎有一些可能的方法从我的搜索中提取:
使用像PSI这样的库(目前似乎没有积极开发并且在多个平台上不受支持)或像pystatgrab这样的东西(自2007年以来再没有活动似乎也不支持Windows).
使用特定于平台的代码,例如os.popen("ps")在*nix系统中使用或类似代码,以及MEMORYSTATUS在Windows平台上使用ctypes.windll.kernel32(参见ActiveState上的此配方).可以将Python类与所有这些代码片段放在一起.
并不是说这些方法很糟糕,但是已经有一个支持良好的多平台方式来做同样的事情了吗?
我需要通过可能有损的网络将数据包从一个主机发送到另一个主机.为了最小化数据包延迟,我不考虑TCP/IP.但是,我希望最大化吞吐量uisng UDP.应该使用的UDP数据包的最佳大小是多少?
以下是我的一些注意事项:
网络中交换机的MTU大小为1500.如果我使用大数据包,例如8192,则会导致碎片.丢失一个片段会导致丢失整个数据包,对吧?
如果我使用较小的数据包,我将产生UDP和IP头的开销
如果我使用一个非常大的数据包,我可以使用的最大数据包是多少?我读到最大的数据报大小是65507.我应该使用什么缓冲区大小来发送这样的大小?这有助于提高我的吞吐量吗?
常见操作系统(例如Windows,Linux等)支持的典型最大数据报大小是多少?
更新:
数据的一些接收器是未实现TCP/IP堆栈的嵌入式系统.
我知道这个地方到处都是那些非常喜欢使用可用内容的人.但我希望能得到更好的答案,而不仅仅关注MTU.
我需要一个函数count_permutations()来返回给定范围的排列数.假设允许修改范围,并从第一个排列开始,我可以天真地实现这个,因为重复调用next_permutation(),如下所示:
template<class Ret, class Iter>
Ret count_permutations(Iter first, Iter last)
{
Ret ret = 0;
do {
++ret;
} while (next_permutation(first, last));
return ret;
}
Run Code Online (Sandbox Code Playgroud)
是否有更快的方法不需要遍历所有排列来找到答案?它仍然可以假设输入可以被修改,并在第一个排列中开始,但显然如果可以在没有这些假设的情况下实现它也会很棒.
我正在开发一个Web应用程序,它旨在显示一组使用AJAX定期更新的数据.一般使用场景是用户将其全天保持打开状态并偶尔看一眼.
我遇到的问题是浏览器内存占用时间逐渐增长.这种情况在Firefox和IE 7中都有发生(尽管不在Chrome中).几个小时后,它可以使IE7占用大约200MB,FF3占用大约400MB.
经过大量测试后,我发现只有在响应AJAX调用时才会发生内存泄漏.如果服务器没有响应任何内容,我可以将页面打开几个小时,并且足迹不会增长.
我正在使用原型进行AJAX调用.所以,我猜测onSuccess回调存在一个问题,造成这些内存泄漏.
有没有人有关于使用原型/ AJAX防止内存泄漏的任何提示?或者有关如何解决此问题的任何方法?
编辑:发现问题在于我正在使用的js图形库.可以在这里看到.
有没有办法捕获原本未处理的异常(包括那些在catch块之外抛出的异常)?
我并不是真的关心所有正常的清理工作,只是因为我可以捕获它,将其写入日志/通知用户并退出程序,因为这些情况下的例外通常是致命的,不可恢复的错误.
就像是:
global_catch()
{
MessageBox(NULL,L"Fatal Error", L"A fatal error has occured. Sorry for any inconvience", MB_ICONERROR);
exit(-1);
}
global_catch(Exception *except)
{
MessageBox(NULL,L"Fatal Error", except->ToString(), MB_ICONERROR);
exit(-1);
}
Run Code Online (Sandbox Code Playgroud)