考虑以下例程,它通过构建一些默认行为来简化我的生活(例如,没有空值,不解析"1,1,1"作为有效数字):
public static Double CvtToDouble(Object O)
{
if (O == null) return (Double)0;
if (O == System.DBNull) return (Double)0;
if (O is string) return Double.Parse((String)O,
System.Globalization.NumberStyles.Float);
return (T)O;
}
Run Code Online (Sandbox Code Playgroud)
然后对所有num类型重复该例程.我想通过将它们全部组合起来来节省打字和拼写错误
public static T CvtTo<T>(Object O) : where T : "is one of Int32, Int16 ..."
Run Code Online (Sandbox Code Playgroud)
通常的"where T:struct"约束在这里是不够的,因为"return(T)0"语句对任意值类型无效.似乎应该有一些方法来泛化它而不向后弯曲,但我没有看到它.我错过了什么?
在Windows上使用mongo 2.0.1 32位的新手尝试测试分片如下:
(4)进程:2个分片+配置srver + mongos w tiny chunksize
mongod.exe --shardsvr --port 10001 --dbpath <folder1> > shard1.log
mongod.exe --shardsvr --port 10002 --dbpath <folder2> > shard2.log
mongod.exe --configsvr --port 20000 --dbpath <configfolder> > config.log
mongos.exe --configdb localhost:20000 --chunkSize 1 > mongos.log
Run Code Online (Sandbox Code Playgroud)
我运行shell并设置2个分片:
mongos> use admin
switched to dbadmin
mongos> db.runCommand( { addshard : "localhost:10001" } );
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> db.runCommand( { addshard : "localhost:10002" } );
{ "shardAdded" : "shard0001", "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)
然后我为测试数据库(dbTest)和集合(cTest)启用了分片: …
我刚开始使用#region/ #endregion来组织我的C#代码.现在似乎Ctrl-H(快速查找和替换)LookIn=CurrentDocument并不会替换当前碰巧崩溃的任何#region代码.
我梦想还是这真的是VS 2008的行为?(似乎有危险的全局替换取决于您的活动窗口状态.)
如果我没有做梦,是否有一个编辑设置埋在某处以改变行为?
Haskell新手想知道为什么前3个没问题,但第4个声明爆炸了:
Prelude> read "5.3" + 5.0 -- ok
10.3
Prelude> read "5" + 5 -- ok
10
Prelude> read "5" + 5.3 -- ok
10.3
Prelude> read "5.3" + 5 -- huh ???
*** Exception: Prelude.read: no parse
Run Code Online (Sandbox Code Playgroud)
我看到:t 5.3是Fractional而5只是Num,但两者都必须可以从read中返回,因为前三个命令有效,而(+)应该适用于任何一对Nums.这里发生了什么 ?
如果字符串键尚未使用,我将生成数以万计的<string,double>对并将每个对存储在.NET Dictionary中.
效率方面,这样做更好吗?
try { Dict.Add(key, val); } catch (ArgumentException) {} //blind attempt
Run Code Online (Sandbox Code Playgroud)
或这个 ?
if (!Dict.ContainsKey(key)) { Dict.Add(key, val); } //smart attempt
Run Code Online (Sandbox Code Playgroud)
盲目尝试触发了双键上的异常; 智能尝试两次点击Dictionary索引 - 一次检查,然后再次添加.(在我的特定情况下,大约10%的时间都有双键.)
有人知道一种方法应该优先于另一种吗?
Mongo新手在Windows XP上运行32位Mongo 2.0.1.目前没有选项可以运行64位.
我想使用Mongo来映射 - 减少一组60个文件,每个文件是同一个20,000行x 100列表的每月快照.理想情况下,我将它们全部放在一个集合中 - 尽管这可以达到大约1.2GB的csv数据,但它远远超过2GB的mongoimport数据.
问:我应该围绕这个节目(60图降低),或者是有一个不太繁琐的工程解决方案,一个蒙戈新手可以解决(或者w ^分片或者一些把戏,导致给少臃肿存储底层的数据是真的简单表w定义列).
C#coder刚刚编写了这个简单的C++方法来从文件中获取文本:
static std::vector<std::string> readTextFile(const std::string &filePath) {
std::string line;
std::vector<std::string> lines;
std::ifstream theFile(filePath.c_str());
while (theFile.good()) {
getline (theFile, line);
lines.push_back(line);
}
theFile.close();
return lines;
}
Run Code Online (Sandbox Code Playgroud)
我知道这段代码效率不高; 文本行在读取时复制一次,第二次在按值返回时复制.
两个问题:
(1)这段代码可以泄漏内存吗?(2)更普遍的是可以通过值返回容器的容器泄漏内存?(假设物体本身不泄漏)
在immed窗口中:
?Double.Parse("4,67,34,34,46,34,235,346")
46734344634235344.0
Run Code Online (Sandbox Code Playgroud)
如何阻止这一点,只允许4.56 4,455,455.33,1.23E5成功?
Mongo的新手,只是在运行Mongo 2.0.1的Windows XP机器上试验shell.
在">"mongo.exe cmd提示符下,我要输入什么才能从另一个名为TEST.js的文件中读取cmd?我在每个我能想到的地方都放了一个TEST.js文件,输入了"> ./ mongo TEST.js","> .mongo full-pathname.js","> TEST.js"等字样.
有没有办法做到这一点 ?
(为什么?:我加载了一堆数据w mongoimport并认为我可以在通过ruby或python驱动程序进行设置之前从shell提示符中尝试快速和脏的mapreduce并以正确的方式执行.地图,减少&finalize funcs位于一个*.js文件中,我需要先导入这些函数defs才能在我的数据集上运行mapreduce方法.)