Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实现collecion-ToString时如何避免最后一个逗号_C#_Collections_Tostring - Fatal编程技术网

C# 实现collecion-ToString时如何避免最后一个逗号

C# 实现collecion-ToString时如何避免最后一个逗号,c#,collections,tostring,C#,Collections,Tostring,我正在实现一个customizetojson()方法 我班的一个成员是一本字典 我做到了: sb.Append("\"DateSource\" : {"); foreach (var row in DateSource) { sb.Append("["); sb.Append(string.Format("\"RowKey\" : {0}", row.Key)); sb.App

我正在实现一个customizetojson()方法

我班的一个成员是一本字典

我做到了:

        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("}");
如何避免转换中的最后一个逗号?

您可以使用:

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

我想我只需要使用String.replace() 取代

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

我使用以下扩展名:

    public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator)
    {
        return String.Join(separator, source.Select(e => e.ToString()).ToArray());
    }
publicstaticstringtoseparatedstring(此IEnumerable源,字符串分隔符)
{
返回String.Join(分隔符,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());
    }
publicstaticstringtoseparatedstring(此IEnumerable源代码,字符串分隔符,字符串格式)
{
返回String.Join(分隔符,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
var myList=新列表{“a”、“b”、“c”};
字符串结果=myList.ToSeparatedString(“,”,“[{0}]”);
//这里的结果是“[a]、[b]、[c]”
考虑到如果row.Key和/或row.Value表示字符串,则需要应用如下格式

        sb.Append(string.Format("\"RowKey\" : \"{0}\"", row.Key));
        sb.Append(string.Format("\"RowData\" : \"{0}\"", row.Value));
注意这个
\“{0}\”

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