gpt4 book ai didi

c# - 将 List 编码为普通 String 并将其解码回来的最简单方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:04:22 24 4
gpt4 key购买 nike

我想这个要求我遇到过十几次了。但我始终找不到令人满意的解决方案。例如,有一个字符串集合,我想通过一个只允许纯字符串的 channel 序列化(到磁盘或通过网络)。我几乎总是以使用像

这样可笑的分隔符来结束“split”和“join”

":::==--==:::".

像这样:

public static string encode(System.Collections.Generic.List<string> data)
{
return string.Join(" :::==--==::: ", data.ToArray());
}
public static string[] decode(string encoded)
{
return encoded.Split(new string[] { " :::==--==::: " }, StringSplitOptions.None);
}

但这个简单的解决方案显然存在一些缺陷。该字符串不能包含分隔符字符串。因此,编码后的字符串无法再重新编码。

AFAIK,综合解决方案应该包括在编码时转义分隔符和在解码时取消转义。虽然问题听起来很简单,但我相信完整的解决方案可能需要大量代码。我想知道是否有任何技巧可以让我用很少的代码行构建编码器和解码器?

最佳答案

将引用和using添加到System.Web,然后:

public static string Encode(IEnumerable<string> strings)
{
return string.Join("&", strings.Select(s => HttpUtility.UrlEncode(s)).ToArray());
}

public static IEnumerable<string> Decode(string list)
{
return list.Split('&').Select(s => HttpUtility.UrlDecode(s));
}

大多数语言都有一对实用函数来执行 Url“百分比”编码,这是在这种情况下重用的理想选择。

关于c# - 将 List<String> 编码为普通 String 并将其解码回来的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/853475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com