java代码转c#代码的问题

我对接了一份接口文档;对方只提供了java的签名代码;我现在卡在Map遍历这一块了;不知道该怎么转成C#代码。。

 params.entrySet()
                .stream()
                .sorted(Map.Entry.comparingByKey())
                .forEach(paramEntry -> {
                    String paramValue = String.join(",", Arrays.stream(paramEntry.getValue()).sorted().toArray(String[]::new));
                    sb.append(paramEntry.getKey()).append("=").append(paramValue).append('#');
                });

只能在此向思否大神求助

阅读 3k
2 个回答
var sb = new System.Text.StringBuilder();
var param = new Dictionary<string, string>(){
    {"name", "apple"},
    {"password", "admin"},
    {"aaa", "bbb"}
};
var res = string.Join("#", param.OrderBy(p => p.Key).Select(kv => $"{kv.Key}={string.Join(",", kv.Value.ToArray().OrderBy(v=>v))}"));
// res is "aaa=b,b,b#name=a,e,l,p,p#password=a,d,i,m,n"
Map<String, String[]> params = new HashMap<>();
String[] name = {"a","p","p", "l", "e"};
params.put("name", name);
String[] password = {"a","d","m", "i", "n"};
params.put("password", password);
String[] aaa = {"b","b","b"};
params.put("aaa", aaa);
StringBuilder sb = new StringBuilder();

params.entrySet()
        .stream()
        .sorted(Map.Entry.comparingByKey())
        .forEach(paramEntry -> {
            String paramValue = String.join(",", Arrays.stream(paramEntry.getValue()).sorted().toArray(String[]::new));
            sb.append(paramEntry.getKey()).append("=").append(paramValue).append('#');
        });

System.out.println(sb.toString());

只能帮你到这了。

# 输入:
{
    "admin": "apple",
    "password": "admin",
    "aaa", "bbb"
}

# 输出
aaa=b,b,b#name=a,e,l,p,p#password=a,d,i,m,n#

无非就是字符串处理,没啥难的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题