小编Ard*_* Xi的帖子

在C#中获取Dictionary最高值的关键的好方法

我正试图获得最大值的关键Dictionary<string, double> results.

这是我到目前为止:

double max = results.Max(kvp => kvp.Value);
return results.Where(kvp => kvp.Value == max).Select(kvp => kvp.Key).First();
Run Code Online (Sandbox Code Playgroud)

但是,由于这似乎有点低效,我想知道是否有更好的方法来做到这一点.

c# linq dictionary max

69
推荐指数
5
解决办法
6万
查看次数

试图在Javascript中加入二维数组

我正在尝试将二维数组转换为字符串,以便将其存储在localStorage数组中.但是,我无法识别的代码有问题:

for(x in array) {
    if(array[x] instanceof Array) {
        array[x] = array[x].join("`");
    }
}
var string = array.join("@");
localStorage[key] = string;
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

至于什么是错的,通过多维数组我的意思是数组[0] [1]等.当输入到localStorage时,所有'字符串'都被缩减为@,暗示@的另一边还有数组.

javascript arrays implode multidimensional-array

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

你如何对一个与数据交流的类进行单元测试?

我有一些存储库类,用于与从IRepository接口派生的不同类型的数据进行通信.

在实现中,代码与数据源对话,这是XML文件或数据库的目录,甚至只是缓存.是否有可能对这些实现进行可靠的单元测试?我没有看到模拟实现工作,因为那时我只测试模拟代码而不是实际代码.

c# tdd unit-testing mstest testing-strategies

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

如何在MySQL中正确使用LINQ?

可能重复:
LINQ to MySQL - 什么是最佳选择?

我已经在Google上查了好几个小时,但我还没有找到任何结论.到目前为止,我已经看到了一些付费选项,NHibernate的选项,但大多数被标记为不稳定或生产.

LINQ for MySQL是否有稳定的实现?

c# mysql linq linq-to-sql

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

如何可靠地为Last.fm API签署请求?

我正在尝试通过Last.fm实施授权。我将参数作为字典提交,以使签名更加容易。这是我用来签名呼叫的代码:

public static string SignCall(Dictionary<string, string> args)
{
    IOrderedEnumerable<KeyValuePair<string, string>> sortedArgs = args.OrderBy(arg => arg.Key);
    string signature = 
        sortedArgs.Select(pair => pair.Key + pair.Value).
        Aggregate((first, second) => first + second);
    return MD5(signature + SecretKey);
}
Run Code Online (Sandbox Code Playgroud)

我已经在调试器中检查了输出,这正是应该的输出,但是,每次尝试时我仍然会收到WebExceptions,这意味着API返回了“无效的方法签名”。这意味着它不接受SignCall正在生成的签名。

这是我用来生成URL的代码,以防万一:

public static string GetSignedURI(Dictionary<string, string> args, bool get)
{
    var stringBuilder = new StringBuilder();
    if (get)
        stringBuilder.Append("http://ws.audioscrobbler.com/2.0/?");
    foreach (var kvp in args)
        stringBuilder.AppendFormat("{0}={1}&", kvp.Key, kvp.Value);
    stringBuilder.Append("api_sig="+SignCall(args));
    return stringBuilder.ToString();
}
Run Code Online (Sandbox Code Playgroud)

并获取用法示例以获取SessionKey:

var args = new Dictionary<string, string>
                       {
                           {"method", "auth.getSession"},
                           {"api_key", ApiKey},
                           {"token", token}
                       }; …
Run Code Online (Sandbox Code Playgroud)

c# linq md5

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