小编tpa*_*ale的帖子

c#Generics <T> /约束问题

考虑以下例程,它通过构建一些默认行为来简化我的生活(例如,没有空值,不解析"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"语句对任意值类型无效.似乎应该有一些方法来泛化它而不向后弯曲,但我没有看到它.我错过了什么?

.net c#

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

mongoDB分片示例

在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)启用了分片: …

mongodb

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

VS 2008查找/替换崩溃区域

我刚开始使用#region/ #endregion来组织我的C#代码.现在似乎Ctrl-H(快速查找和替换)LookIn=CurrentDocument并不会替换当前碰巧崩溃的任何#region代码.

  1. 我梦想还是这真的是VS 2008的行为?(似乎有危险的全局替换取决于您的活动窗口状态.)

  2. 如果我没有做梦,是否有一个编辑设置埋在某处以改变行为?

c# visual-studio-2008

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

Haskell读取类型推断

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.这里发生了什么 ?

haskell

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

有效地添加到C#.NET字典

如果字符串键尚未使用,我将生成数以万计的<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%的时间都有双键.)

有人知道一种方法应该优先于另一种吗?

.net c#

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

mongoDB 32位2GB限制,最佳做法

Mongo新手在Windows XP上运行32位Mongo 2.0.1.目前没有选项可以运行64位.

我想使用Mongo来映射 - 减少一组60个文件,每个文件是同一个20,000行x 100列表的每月快照.理想情况下,我将它们全部放在一个集合中 - 尽管这可以达到大约1.2GB的csv数据,但它远远超过2GB的mongoimport数据.

问:我应该围绕这个节目(60图降低),或者是有一个不太繁琐的工程解决方案,一个蒙戈新手可以解决(或者w ^分片或者一些把戏,导致给少臃肿存储底层的数据是真的简单表w定义列).

mongodb

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

STL容器和内存泄漏

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)更普遍的是可以通过值返回容器的容器泄漏内存?(假设物体本身不泄漏)

c++ stl

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

c#Double.TryParse("1,1,1",out value)返回true,值= 111呵呵?

在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成功?

.net c#

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

mongo shell/Windows XP的简单示例

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方法.)

mongodb

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

标签 统计

c# ×4

.net ×3

mongodb ×3

c++ ×1

haskell ×1

stl ×1

visual-studio-2008 ×1