问题列表 - 第36667页

用一个语句展平树(列表列表)?

感谢nHibernate,我使用的一些数据结构是列表中列表中的列表.例如,我有一个名为"category"的数据对象,它有一个.Children属性,可以解析为一个类别列表......每个类别都可以有子节点......依此类推.

我需要找到一种方法,从这个结构中的顶级类别开始,并获得一个列表或数组或类似于整个结构中所有孩子的东西 - 所有孩子的所有孩子等等,扁平化为一个名单.

我确信它可以通过递归来完成,但我发现递归代码很难实现,而且我确信在.Net 4中必须有一个更简单的方法使用Linq或者某些 - 任何建议?

.net tree flatten

22
推荐指数
2
解决办法
9361
查看次数

Java:通用函数X-> Y接口

我需要一个界面,如:

interface Function<X,Y> {
    Y eval(X obj);
}
Run Code Online (Sandbox Code Playgroud)

Java中是否有这样的东西,或者我需要定义自己的东西吗?

java interface function

10
推荐指数
3
解决办法
5300
查看次数

动态转换处理不相关的类型

#include <iostream> 
using namespace std; 
class X{ 
     public: 
     virtual void f(){} 
}; 

class Y { 
     public: 
     virtual void g() {} 
}; 

int main() 
{ 
     X * x = new X(); 
     Y* y = dynamic_cast<Y*>(x); //A 
     // Y* y = static_cast<Y*>(x);  //B 
     cout << y << endl; 
} 
Run Code Online (Sandbox Code Playgroud)

A编译而不编译B.我理解为什么B不编译,但为什么A编译虽然XY完全不相关的类型?

c++ inheritance

9
推荐指数
3
解决办法
1494
查看次数

为了测试目的,我如何防止Perl使用模块?

我正在开发一套Perl脚本和模块,然后部署在我们公司的不同机器和系统上.某些设施依赖于可能安装或不安装在不同机器上的特定模块.我使用'eval'来检测这个模块是否可用.

我刚刚收到一个故障报告,结果是用户没有在他的机器上成功安装模块(但没有意识到他没有):但我的代码中的错误是我没有在这种情况下,将错误条件传递到顶层,因此它会丢失,并且脚本只是默默地无法执行其部分功能.

为了研究它,我禁用了我的机器上的特定模块,并轻松找到并修复了问题.但是,除了卸载它之外,我能想到禁用它的唯一方法就是重命名文件(当然,我必须通过sudo来完成).

我现在正在运行我的所有测试,这个模块不可用,并且它已经抛出了一些我没有正确处理这种情况的地方.

但我现在要做的是为这种情况编写一些测试:但是如何在自动测试中明智地使该模块暂时不可用.我真的不希望我的测试使用sudo来移动模块(我可能在同一时间在机器上做其他事情).

有没有人知道我可以告诉Perl的方法"无论我试图'使用'还是'要求'它出于测试目的,都找不到这个模块"?

我正在运行Perl 5.10.0(在Fedora 12上),并使用Test :: More和TAP :: Harness.我们的一些安装正在运行Perl 5.8,因此我愿意在测试中使用5.10功能,但不在代码本身中使用.

testing perl

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

C编译器如何发现-lm指向文件libm.a?

什么是Linux中C编程的.a文件?是库文件吗?

To merge with the math library libm.a you would type

 cc -o program_name prog.c -lm

when you compile the program. The -lm means: add in libm. If we wanted to add in the socket library libsocket.a to do some network programming as well, we would type

 cc -o program_name prog.c -lm -lsocket

and so on. 
Run Code Online (Sandbox Code Playgroud)

这里编译器如何发现-lm指向文件libm.a,-lsocket指向libsocket.a?

如果我们将头文件添加到程序中,我们是否必须在编译时提及库?

c linux compiler-construction programming-languages

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

选择Solr / Lucene提交策略

我有120k db记录要提交到Solr索引中。

我的问题是:我应该在提交每10k条记录后提交,还是在提交所有12万条记录后提交一次?

这两种选择之间有什么区别吗?

lucene indexing solr commit

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

如何模拟一个也属于目标类本身的方法?

假设我们正在测试C类,它有两种方法M1和M2,其中M1在执行时调用M2.

测试M2没问题,但我们如何测试M1呢?困难在于,如果我不误解事物,我们需要模拟M2.

如果是这样,我们如何在测试同一个类中定义的方法时模拟另一个方法?

[编辑]
C类没有基类.

unit-testing moq mocking

7
推荐指数
2
解决办法
2021
查看次数

为直接定义的属性或引用选择XML实例上的属性

我正在寻找一种为元素选择属性的变体,可以直接设置或引用.

这就是我的想法:

<root>    
<element>
   <attribute ref="shortname" />
</element>
<element>
   <attribute name="shortname" isEditable="true" anotherattrib="0815" />
</element>
</root>
Run Code Online (Sandbox Code Playgroud)

由于没有xml方案这不会有问题,如果需要元素属性的属性"name",则此属性的定义非常困难.

该计划可能看起来像这样

<xs:element name="attribute">
<xs:complexType>
<xs:attribute name="ref" use="required" />
<xs:attribute name="name" use="required" />
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

是否有可能在属性之间做出选择(类似于xs:元素的选择)?就像从名为ref的元素属性中存在属性一样,不允许其他属性.如果没有,必须设置属性"名称"...

这个问题听起来很纯粹的虚拟和学术,但如果有可能有解决方案,或者我对我的想法完全错误,我会很高兴:)

预先感谢您的任何帮助!

戴夫

xml xsd

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

PHP strtotime()的性能是什么?

我正在做一些大的时间戳列表迭代:将它们放在具有日期范围的表中,并按范围对它们进行分组.为了做到这一点,我发现strtotime()了一个非常有用的功能,但我担心它的性能.

例如,一个循环遍历周列表的函数(例如,第49周到第05周),并且必须决定一周的开始和该周末的时间戳.一个有用的方法,将是:

foreach ($this->weeks($first, $amount) as $starts_at) {
  $ends_at = strtotime('+1 week', $starts_at);
  $groups[$week_key] = $this->slice($timestamps, $starts_at, $ends_at);
}

//$this->weeks returns a list of timestamps at which each week starts.
//$this->slice is a simple helper that returns only the timestamps within a range, from a list of timestamps. 
Run Code Online (Sandbox Code Playgroud)

而不是strtotime(),我可以,可能,找出开始和一周结束之间的秒数,99%的时间24 * 60 * 60 * 7.但是在这些罕见的情况下,有一个DST开关,24应该是23或25.代码排序,可能会慢很多strtotime(),不是吗?

我使用相同的模式,包括年,月(月,非常不一致!),天和小时.只有几个小时,我怀疑只是添加3600到时间戳更快.

还有其他的问题吗?有没有方法(不依赖于PHP5.3!)为一致,DST和闰年安全日期范围提供更好的路径?

php datetime date-range strtotime

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

jQuery的ready()方法的快捷方式

我已经看到了ready()方法的一些快捷方式,并想知道哪个实际上先发生,因为我的测试结果让我感到困惑.

$(document).ready(function(){
    alert("document ready");
});

$(window).load(function(){
    alert("window ready");
});

(function($){
    alert("self invoke");
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

这里首先发生自我调用,然后是文档,然后是窗口.是自调用技术被认为是准备()方法?

jquery document-ready

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