实现集合 ToString 时如何避免最后一个逗号

发布于 2024-11-16 18:44:38 字数 432 浏览 2 评论 0原文

我正在实现自定义 toJson() 方法。

我的班级成员之一是一本字典。

我做了:

        sb.Append("\"DateSource\" : {");
        foreach (var row in DateSource)
        {
            sb.Append("[");
            sb.Append(string.Format("\"RowKey\" : {0}", row.Key));
            sb.Append(string.Format("\"RowData\" : {0}", row.Value));
            sb.Append("]");
        }
        sb.Append("}");

如何避免转换中的最后一个逗号?

I'm implementing a customize toJson() method.

One of my class member is a dictionary.

I did :

        sb.Append("\"DateSource\" : {");
        foreach (var row in DateSource)
        {
            sb.Append("[");
            sb.Append(string.Format("\"RowKey\" : {0}", row.Key));
            sb.Append(string.Format("\"RowData\" : {0}", row.Value));
            sb.Append("]");
        }
        sb.Append("}");

How can I avoid the last comma in the conversion ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心清如水 2024-11-23 18:44:38

您可以使用:

sb.Append("[");
sb.Append(string.Join(
    ", ",
    DateSource.Select(r => string.Format("\"RowKey\" : {0}, \"RowData\" : {1}", r.Key, r.Value))));
sb.Append("]");

You can use:

sb.Append("[");
sb.Append(string.Join(
    ", ",
    DateSource.Select(r => string.Format("\"RowKey\" : {0}, \"RowData\" : {1}", r.Key, r.Value))));
sb.Append("]");
长不大的小祸害 2024-11-23 18:44:38

我使用以下扩展:

    public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator)
    {
        return String.Join(separator, source.Select(e => e.ToString()).ToArray());
    }

如果您需要格式化某些内容:

    public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator, String format)
    {
        return String.Join(separator, source.Select(e => String.Format(format, e)).ToArray());
    }

使用示例

    var myList = new List<String> {"a", "b", "c"};
    String result = myList.ToSeparatedString(",", "[{0}]");
    // result is "[a],[b],[c]" here

I use following extension:

    public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator)
    {
        return String.Join(separator, source.Select(e => e.ToString()).ToArray());
    }

In case when you need to get something formatted:

    public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator, String format)
    {
        return String.Join(separator, source.Select(e => String.Format(format, e)).ToArray());
    }

Example of usage

    var myList = new List<String> {"a", "b", "c"};
    String result = myList.ToSeparatedString(",", "[{0}]");
    // result is "[a],[b],[c]" here
小梨窩很甜 2024-11-23 18:44:38
    sb.Append("\"DateSource\" : {");
    string separator = string.Empty;
    foreach (var row in DateSource)
    {
        sb.Append(separator);
        sb.Append("[");
        sb.Append(string.Format("\"RowKey\" : {0},", row.Key));
        sb.Append(string.Format("\"RowData\" : {0}", row.Value));
        sb.Append("]");
        separator = ",";
    }
    sb.Append("}");

请考虑到,如果 row.Key 和/或 row.Value 表示字符串,则需要应用如下格式:

        sb.Append(string.Format("\"RowKey\" : \"{0}\"", row.Key));
        sb.Append(string.Format("\"RowData\" : \"{0}\"", row.Value));

注意此 \"{0}\"

    sb.Append("\"DateSource\" : {");
    string separator = string.Empty;
    foreach (var row in DateSource)
    {
        sb.Append(separator);
        sb.Append("[");
        sb.Append(string.Format("\"RowKey\" : {0},", row.Key));
        sb.Append(string.Format("\"RowData\" : {0}", row.Value));
        sb.Append("]");
        separator = ",";
    }
    sb.Append("}");

Take into account that if row.Key and / or row.Value represent strings, you'll need to apply the format like this

        sb.Append(string.Format("\"RowKey\" : \"{0}\"", row.Key));
        sb.Append(string.Format("\"RowData\" : \"{0}\"", row.Value));

Note this \"{0}\"

如梦亦如幻 2024-11-23 18:44:38

我想我只会使用 String.replace()
替换每一个

, ] --> ] 
, } --> }

I think I'll just use String.replace()
to replace every

, ] --> ] 
, } --> }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文