问题列表 - 第25982页

如何处理"无限"IEnumerable?

"无限"IEnumerable的一个简单例子

IEnumerable<int> Numbers() {
  int i=0;
  while(true) {
    yield return unchecked(i++);
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道

foreach(int i in Numbers().Take(10)) {
  Console.WriteLine(i);
}
Run Code Online (Sandbox Code Playgroud)

var q = Numbers();
foreach(int i in q.Take(10)) {
  Console.WriteLine(i);
}
Run Code Online (Sandbox Code Playgroud)

两者都工作正常(并打印数字0-9).

但复制或处理表达式时是否有任何陷阱q?我可以依赖这样一个事实,即它们总是被评估为"懒惰"吗?产生无限循环有危险吗?

c# enumeration infinite-loop yield-return

26
推荐指数
3
解决办法
3935
查看次数

如何在(django)开发环境中测试500.html?

我正在使用Django进行项目,并且已经投入生产.

在生产环境中,每当发生服务器错误时都会呈现500.html.

如何在开发环境中测试500.html的渲染?或者我如何在开发中渲染500.html,如果我关闭调试我仍然得到错误而不是500.html

背景:我包含一些基于页面的页面元素,有些在调用500.html时丢失,并且想要在开发环境中调试它.

django development-environment

46
推荐指数
6
解决办法
1万
查看次数

在MySql查询中RegEx与LIKE的性能

有传言说:

SELECT * FROM lineage_string where lineage like '%179%' and  lineage regexp '(^|/)179(/|$)'
Run Code Online (Sandbox Code Playgroud)

会比这更快:

SELECT * FROM lineage_string where lineage regexp '(^|/)179(/|$)'
Run Code Online (Sandbox Code Playgroud)

谁能确认一下?或者知道一种测试这种查询速度的好方法.谢谢

mysql

25
推荐指数
2
解决办法
1万
查看次数

C++ STL:Array vs Vector:原始元素访问性能

我正在建立一个翻译,因为这次我的目标是原始速度,所以在这个(原始)情况下,每个时钟周期对我都很重要.

您是否有任何经验或信息两者更快:Vector或Array?重要的是我可以访问元素的速度(操作码接收),我不关心插入,分配,排序等.

我现在要把自己从窗户里拉出来说:

  • 在访问元素i方面,数组至少比向量快一点.

这对我来说似乎很合乎逻辑.使用向量,您可以获得阵列不存在的所有安全性和控制开销.

(为什么)我错了?

不,我不能忽视性能差异 - 即使它是如此之小 - 我已经优化并最小化执行操作码的VM的每个其他部分:)

c++ arrays stl vector

27
推荐指数
2
解决办法
2万
查看次数

对于文件名,为什么下划线优于连字符?

Python中的构建技巧:

"像exercise_1.py这样的文件名比execise-1.py更好.我们可以从命令行同样运行这两个程序,但带连字符的名称限制了我们编写更大更复杂程序的能力."

为什么?

python naming

50
推荐指数
2
解决办法
2万
查看次数

Python引发了一个KeyError(对于一个out of dictionary key),即使字典中的键是IS

即使我知道密钥IS实际上在字典中,我也会因为字典密钥而出现KeyError.关于可能导致这种情况的任何想法?

print G.keys()
Run Code Online (Sandbox Code Playgroud)

返回以下内容:

['24', '25', '20', '21', '22', '23', '1', '3', '2', '5', '4', '7', '6', '9', '8', '11', '10', '13', '12', '15', '14', '17', '16', '19', '18']
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在下一行代码中访问字典中的值时......

for w in G[v]:    #note that in this example, v = 17
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

KeyError: 17
Run Code Online (Sandbox Code Playgroud)

任何帮助,提示或建议都表示赞赏.谢谢.

python dictionary exception key

8
推荐指数
2
解决办法
3万
查看次数

如何等待控制台应用程序空闲?

我有一个启动的控制台应用程序,托管一堆服务(长时间运行的启动),然后等待客户端调用它.我有集成测试,启动此控制台应用程序并进行"客户端"调用.在进行客户端调用之前,如何等待控制台应用程序完成其启动?

我想避免这样做,Thread.Sleep(int)因为这取决于启动时间(可能会改变),如果启动速度更快,我会浪费时间.

Process.WaitForInputIdle 仅适用于具有UI的应用程序(我确认它在这种情况下会引发异常).

我对尴尬的解决方案开放态度,让控制台应用程序在准备就绪时写入临时文件.

c# timeout console-application

8
推荐指数
1
解决办法
4920
查看次数

使用C预处理器为scanf构造字符串文字?

我正在尝试创建一个sscanf字符串文字,以帮助在C99中防止缓冲区溢出.目标是这样的:

#define MAX_ARG_LEN   16

char arg[MAX_ARG_LEN] = "";

if (sscanf(arg, "%"(MAX_ARG_LEN-1)"X", &input) > 0)
Run Code Online (Sandbox Code Playgroud)

显而易见的"手动"解决方案如下:

#define MAX_ARG_LEN   16
#define MAX_ARG_CHARS "15"

char arg[MAX_ARG_LEN] = "";

if (sscanf(arg, "%"MAX_ARG_CHARS"X", &input) > 0)
Run Code Online (Sandbox Code Playgroud)

但是,我希望在缓冲区大小为16的情况下自动生成"%15X".这个链接几乎适用于我的应用程序:将预处理程序标记转换为字符串,但它不处理-1.

建议?

c string concatenation scanf c-preprocessor

1
推荐指数
1
解决办法
1313
查看次数

iPhone:在背景中解析多个XML与NSXMLParser相互干扰

当我在iPhone上使用NSXMLParser解析XML时,我有一个奇怪的问题.启动应用程序时,我想预先加载4个表视图,这些视图在后台由RSS-Feeds填充.

当我逐个启动表视图时,而不是加载,解析和显示所有的工作,如魅力.但是当我尝试一次(同时)初始化所有视图时,看起来XML-parser-instances互相干扰.不知何故,来自一个XML-Feed的数据被"广播"到其他不属于的xml-parser实例中.示例:有一个"团队成员"项目,"这是我的名字".当这个错误发生时,添加了另一个xml-feed的字符串,即导致:"这是我的名字58",其中58是来自另一个视图的图表位置.在另一个例子中,"58"似乎错过了.

在我看来,由于NSXMLParser委托方法,这个错误发生了:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
    if (!currentStringValue) {
        currentStringValue = [[NSMutableString alloc] initWithCapacity:50];
    }
    [currentStringValue appendString:string];   
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"通过巧合"字节被附加到不属于它们的字符串.

奇怪的是,NSXMLParser的每个实例都是唯一的,有自己独特的委托,附加到自己的ViewController.每个解析请求产生它自己的后台任务,它有自己的(也是唯一命名的)自动释放池.

我在ViewController中调用NSXMLParser:

// prepare XML saving and parsing
currentStringValue = [[[NSMutableString alloc] initWithCapacity:50] retain];    
charts = [[NSMutableArray alloc] init];

NSURL *url = [[NSURL alloc] initWithString:@"http://(SOME XML URL)"];
xmlParser = [[[NSXMLParser alloc] initWithContentsOfURL:url] retain];

//Set delegate
[xmlParser setDelegate:self];

//loading indicator 
progressWheel = [[[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(150.0,170.0,20.0,20.0)] autorelease];
progressWheel.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;

[self.view addSubview:progressWheel];
[progressWheel startAnimating];

// start loading and …
Run Code Online (Sandbox Code Playgroud)

iphone background multiple-instances nsxmlparser

0
推荐指数
1
解决办法
3662
查看次数

使图像适合矩形

如果我有一张我知道高度和宽度的图像,我怎样才能将它放在一个尺寸最大的矩形中,而不会拉伸图像.

伪代码就足够了(但我将在Java中使用它).

谢谢.


所以,基于答案,我写了这个:但它不起作用.我做错了什么?

double imageRatio = bi.getHeight() / bi.getWidth();
double rectRatio = getHeight() / getWidth();
if (imageRatio < rectRatio)
{
    // based on the widths
    double scale = getWidth() / bi.getWidth();
    g.drawImage(bi, 0, 0, (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
if (rectRatio < imageRatio)
{
    // based on the height
    double scale = getHeight() / bi.getHeight();
    g.drawImage(bi, 0, 0 , (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
Run Code Online (Sandbox Code Playgroud)

java image max

9
推荐指数
2
解决办法
5620
查看次数