小编dec*_*cPL的帖子

如何在使用Robolectric 2.2时添加阴影类?

我正在使用Robolectric我的单元测试并将我的Robolectricjar从1.2 更新到2.2并试图弄清楚如何在这个新版本中绑定阴影类.这就是我之前做的事情:

Robolectric.bindShadowClass(ShadowLog.class);

@Implements(Log.class)
public static class ShadowLog {
    public static int i(java.lang.String tag, java.lang.String msg) {
        System.out.println("[" + tag + "] " + msg);
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我认为现在没有bindShadowClass API可用.我尝试使用addShadowClass,但我不确定这是否是添加阴影类的正确方法.我可以使用吗?

ShadowMap a = new ShadowMap.Builder().addShadowClass(ShadowLog.class).build();
Run Code Online (Sandbox Code Playgroud)

我是否需要使用此shadowMap创建一个classHandler或者其他东西,如果是,我如何创建和使用该classHandler来访问我的Log类方法?

@Implements(Log.class)
public static class ShadowLog {
    public static int i(java.lang.String tag, java.lang.String msg) {
        System.out.println("[" + tag + "] " + msg);
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后 Log.i("LogTest", "log message ");

谢谢阿比

robolectric

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

在List <[linq_custom_object]>()上实现.Distinct()的正确方法是什么?

我有这个DNS_Log有四个属性的类.我已经创建了一个这些对象的列表,我试图过滤这些对象仅用于不同的事件.(当填充列表时,有很多重复)

这是填充的列表:

dnsLogs.Add( new DNS_Log { Destination = destination, 
                           Source_IP = sourceIp, 
                           Domain_Controller = domainController, 
                           DateTime = datetime });
Run Code Online (Sandbox Code Playgroud)

这是我试图过滤掉不同的那些:

dnsLogs = dnsLogs.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我是否需要在不同的参数中使用一些linq表达式?我想将对象作为一个整体来比较它们的属性.有没有更简单的方法呢?

PS我已经玩了一个IEqualityComparer<DNS_Log>似乎工作正常的自定义,但我不知道如何在这种情况下实现它.

.net c# linq distinct

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

使用几何分布的随机数生成器

我需要使用几何分布的随机数生成器

http://en.wikipedia.org/wiki/Geometric_Distribution

我想MathNet.Numerics.Distributions

public void GeometricTest()
{
    var geometric = new Geometric(0.1);
    int back = geometric.Sample();
    Assert.Greater(back, -1);
}
Run Code Online (Sandbox Code Playgroud)

但是测试只给出负数。是否有人发现我的错误或给我其他采样几何分布方式的建议?

.net c# random distribution mathnet-numerics

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

如何将列表中的字符串与句子中的单词匹配?

我有两个名单和一个句子.我需要找出任何列表中的哪个字符串与句子中的单词匹配.到目前为止,我已经能够通过将句子分成单词数组然后循环遍历每个列表并将元素与数组元素进行比较来实现此目的.我的代码非常笨拙.有更有效/更好的方式吗?这是if语句中没有嵌套循环的代码.

List<string> browserList = new List<string>(new string[] { "Firefox", "Chrome", "Safari"});
List<string> mediaPlayerList = new List<string>(new string[] { "VLC", "WinAmp", "WMP" });

string sentence = "I use Firefox everyday";

if (browserList.Any(sentence.Contains))
{
   // return the matching string (browser's name)
}

else if (mediaPlayerList.Any(sentence.Contains))
{
   // return the matching string (media player's name)
}
Run Code Online (Sandbox Code Playgroud)

c#

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

如何将字符串值转换为int,以便它不跳过前面的0?

我在字符串中有这个值

string FinalValue=" 0XXXXXXXXX";
Run Code Online (Sandbox Code Playgroud)

我需要获取整数值.

但当我转换它如下

 custNUmber = int.Parse(FinalValue);
Run Code Online (Sandbox Code Playgroud)

它说int32的值太大或太小.C#

当我使用长时,它会跳过第一个数字0.

c#

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

C#不会循环我的循环

我试图绕过循环并将项目附加到StringBuilder.

但是,我无法在循环中做任何事情,我不认为我的循环甚至被访问.

以下是代码:

string initialString = "PRINT OUT PRODUCTS BELOW!\n";
StringBuilder stringBuilder = new StringBuilder(initialString);

for (int i = 0; i < products.Count(); i++)
{
   stringBuilder.Append(products.ElementAt(i));
   stringBuilder.Append("24");
   stringBuilder.Append("36");
}

stringBuilder.Append("45");

return stringBuilder.ToString();
Run Code Online (Sandbox Code Playgroud)

最终的"45"将打印出来,但24或36将不打印.

c# stringbuilder list winforms

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