小编Tom*_*han的帖子

使用.NET StringDictionary通过列表/字典进行前缀搜索?

我想知道.NET是否提供了通过列表或字典对象进行前缀搜索的任何标准功能.我遇到了StringDictionary,但无法弄清楚它是否能为我做到这一点.

如果它可以进行前缀搜索,它是否也可以进行子串搜索或者让我使用正则表达式进行搜索?

提前致谢.

c# string search prefix

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

如何测试与ModelState一起使用的ActionFilterAttributes?

正如(其中包括)Kazi Manzur Ra​​shid在这篇博客文章中所建议的那样,我ActionFilterAttributes在重定向时用于将模型状态从一个请求转移到另一个请求.

但是,我发现自己无法编写测试这些属性行为的单元测试.作为一个例子,这就是我想要做的测试ImportModelStateAttribute:

  1. 设置,filterContext以便TempData[myKey]包含一些假的"导出" ModelState(也就是说,ModelStateDictionary我创建自己,并添加一个错误)
  2. 请ModelState包含一个模型误差.
  3. 打电话OnActionExecuting.
  4. 验证两个词典是否已合并,ModelState现在包含两个错误.

我已经迈出了第一步.

编辑:
是的,我曾尝试ActionFilterAttribute用Moq 嘲笑,但我得到错误说明

不可覆盖的成员上的设置无效

对于TempData和ModelState.

c# asp.net-mvc unit-testing modelstate action-filter

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

将jQuery Validation插件中的验证方法与"或"而不是"和"相结合

在jQuery验证插件有几个是做同样的事情的方法,但对于不同的区域,例如dateISO和dateDE,这两个验证日期格式.如何结合这些使输入元素接受要么?

假设<input type="text" name="dateInput" id="dateInput" />我的表单中有一个,我想允许用户只输入此字段中的日期.不过,我想,以使几个不同的日期格式-比如,用户应该能够进入任何一个ISO日期或 accoding德国日期规则格式化的日期.

如果我做

rules: { dateInput: { required: true, dateISO: true, dateDE: true } }
Run Code Online (Sandbox Code Playgroud)

表格将永远无效,因为两种日期格式都是必需的,并且永远无法满足该要求.有没有办法将这些组合为"或"而不是"和",而不必编写我自己的验证方法?

如果我必须自己编写,我该如何使它尽可能通用?

jquery jquery-plugins jquery-validate

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

棘手的SQL SELECT语句-将两行合并为两列

我的问题:
我有一个带有a Channel <int>和一Value <float>列的表,以及一个时间戳和另外两个带有附加数据的列。Channel是1或2,并且存在1或2行,除了channel和value以外,其他所有行都相同。

我想做的是将此数据选择为新形式,其中两个通道显示为列。我尝试使用进行操作GROUP BY,但无法弄清楚如何根据同一行的通道将值放入正确的列中。

示例:
对于那些宁愿查看我拥有的数据和想要的数据并从那里弄清楚的人,就在这里。是)我有的:

 Channel    Value       Timestamp                OtherStuff
 1          0.2394      2010-07-09 13:00:00      'some other stuff'
 2          1.2348      2010-07-09 13:00:00      'some other stuff'
 1          24.2348     2010-07-09 12:58:00      'some other stuff'
 2          16.3728     2010-07-09 12:58:00      'some other stuff'
 1          12.284      2010-07-09 13:00:00      'unrelated things'
 2          9.6147      2010-07-09 13:00:00      'unrelated things'
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Value1     Value2      Timestamp                OtherStuff
0.2394     1.2348      2010-07-09 13:00:00      'some other stuff'
24.2348    16.3728     2010-07-09 12:58:00 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql group-by sql-server-2005

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

NCover代码覆盖率导致故意测试失败

我有几个单元测试助手扩展方法,例如,IsNotEmpty(this string str)我也为其编写了单元测试.这些测试的基本结构是我有一个测试,它验证扩展方法是否通过并在"良好"输入上返回预期结果,以及验证在"坏"输入上抛出失败异常的测试.例如,上述方法的失败测试可能如下所示:

[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
    "".IsNotEmpty();
}
Run Code Online (Sandbox Code Playgroud)

Fails我自己写的属性在哪里- 基本上是代理[ExpectedException(typeof(AssertFailedException))].所以我明确地期望在上面测试的唯一一行上抛出一个异常,因此,我不希望该方法一直运行.

但是当我右键单击我的解决方案时,选择"使用 - > NCover测试",我在所有方法(如上面的方法)上得到的代码覆盖率低于100%,结束大括号突出显示为红色.

为什么NCover抱怨我的测试方法没有完成,当我说它不会?

**)对于那些将回复100%代码覆盖率的人来说:不,我并不特别担心不惜一切代价保持100%的代码覆盖率.但是,在这些情况下,*重要的方法显示为列表中未包含的内容,我必须一直进入树中才能看到它只是它们.这是我试图在这里得到的问题 - 一般来说不是100%的代码覆盖率.

c# code-coverage ncover visual-studio

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

Javascript parseInt给出了非常意外的结果

可能重复:
JavaScript parseInt八进制错误的变通方法

我正在解析一个字符串以检查它是否是一个日期,我们现在发现我的方法不适用于八月或九月的日期.这就是我所做的(显然,输入并不是真正的硬编码,但为了简洁起见......):

var str = '2010-08-26 14:53';
var data = str.split(' ');  // ['2010-08-26', '14:53']
var date = data[0].split('-'); // ['2010', '08', '26]
var time = data[1].split(':'); // ['14', '53']

var yyyy = parseInt(date[0]); // 2010

// THIS IS WHERE STRANGE THINGS HAPPEN:
var MM = parseInt(date[1]); // 0 - not 08 or 8, as expected!
console.log(date[1]); // prints "08" (with quotes)
console.log(date[1].toString()); // prints 08 (no quotes)
console.log(parseInt(date[1].toString())); // prints 0 (!)
Run Code Online (Sandbox Code Playgroud)

这个问题出现了8,9月份和8楼和9月的每-也就是说,在任"08"或 …

javascript parseint

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

python中''和""有什么区别?

可能重复:
Python中"string"和"string"之间有什么区别吗?
单引号与Python中的双引号

我注意到,我可以同时使用单引号和双引号来分隔字符串蟒蛇,和哪一个我不使用分隔字符串,我可以自由地在其内部使用而无需逃避它.

例子:

ex1 = 'this works'
ex2 = "this works too"
ex3 = "it's much easier to write it's this way"
ex4 = 'but this way, it\'s possible to print out "quotes from other people"'
Run Code Online (Sandbox Code Playgroud)

在其他语言,但我见过情况下,两个地方都无所谓(在JavaScript中,双方'hi'=="hi"并'hi'==="hi"返回true),而在其(在C#中,"d"是一个string同时'd'是char)

现在,我想知道"引擎盖下"是否真的存在差异.python是否关心'和"我使用哪个?如果真是这样,那么是以哪种方式?

python string

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

如何避免为IN子句重复此子查询?

我有一个SQL脚本(目前针对SQLite运行,但它可能适用于任何数据库引擎),它使用相同的子查询两次,因为它可能会获取大量记录(该表有几百万行)I'我只想打电话一次.

缩短的伪查询版本如下所示:

SELECT * FROM
    ([the subquery, returns a column of ids]) AS sq
[a couple of joins, that fetches things from other tables based on the ids]
WHERE thisorthat NOT IN ([the subquery again])
Run Code Online (Sandbox Code Playgroud)

我尝试sq以各种方式使用name()(有/无括号,有/无命名sq等列),但无济于事.

难道我真的有重复这个子查询?

澄清: 我在python和sqlite中这样做是一个可以完成的小演示,但我希望我的解决方案尽可能少地进行修改.在实际情况中,数据库将有几百万行,但在我的示例中,只有10行具有虚拟数据.因此,在例如MySQL上进行了优化的代码绝对足够好 - 它不必专门针对SQLite进行优化.但正如我所说,需要的修改越少越好.

sql dry subquery in-clause

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

使用Castle Windsor在遗留代码中注入HttpContext.Current.Session

tl; dr:
在遗留应用程序中,文化信息存储在HttpContext.Current.Session["culture"].我如何在这里介绍DI与温莎,所以当运行应用程序仍然获取并设置文化信息,但我可以在我的测试中模拟它?

完整背景:
我有一些遗留代码用于本地化,我希望重构以实现模拟和测试.目前,自定义类Lang基于提供string key和打开来获取本地化字符串HttpContext.Current.Session["culture"] as CultureInfo.

我最初的想法是简单地CultureInfo使用Windsor 注入一个实例,然后安装它以便在运行整个Web应用程序时从同一个地方获取它,但是在测试时我只需注册一个new CultureInfo("en-GB").这是我为安装程序提出的:

public class CultureInfoFromSessionInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.Register( // exception here (see comments below)
            Component.For<CultureInfo>()
            .Instance(HttpContext.Current.Session["culture"] as CultureInfo)
            .LifeStyle.PerWebSession());
    }
}
class EnglishCultureInfoInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.Register(
            Component.For<CultureInfo>()
            .Instance(new CultureInfo("en-GB")));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是现在运行应用程序时,我在指定的行上得到一个空引用异常.我怀疑这是因为我试图过早地挂起它 - 容器已初始化并且安装程序Application_Start在Global.asax.cs中注册,我不确定HttpContext.Current.Session(或者甚至HttpContext.Current)是否已设置.

有没有一个很好的方法来获得我在这里想要做的事情?

session dependency-injection castle-windsor asp.net-mvc-2

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

Sublime Text 2中的"智能引号"与LaTeXTools

我最近将我的LaTeX创作从TeXWorks迁移到Sublime Text 2,我真正缺少的一个功能是能够输入"常规引号",(在我的瑞典语键盘上使用shift+ 2,屈服"quoted text")并自动编辑将它们转换为在LaTeX中引用的正确方式,这是``quoted text''在我输入的时候.

我试图在ST2中寻找一种方法来做到这一点,但我发现的大部分内容都与自动转义字符串中的引号有关,这不是我所追求的.

有没有办法在ST2中获得此功能?

latex sublimetext2

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