C# 将WebResponse字符串破译为数组列表

C# 将WebResponse字符串破译为数组列表,c#,winforms,data-transfer,encryption,C#,Winforms,Data Transfer,Encryption,网站上有一个PHP脚本。我还有一个C#winforms程序,它使用WebRequest/WebResponse方法发送POST消息 这个PHP脚本连接到mysql数据库,获取一些数据并将其发送回WinForms应用程序。数据格式如下: 约翰,32岁,5月 彼得,6月24日 等等 所有这些文本都作为单个字符串发送将此字符串解码为字符串列表[]的最佳方法是什么? 现在我正在使用一种自制的方法。PHP脚本执行以下操作: 首先,我们用“,”分隔每个单词 然后我们用“|”分隔每一行 当我收到信息时,我

网站上有一个PHP脚本。我还有一个C#winforms程序,它使用WebRequest/WebResponse方法发送POST消息

这个PHP脚本连接到mysql数据库,获取一些数据并将其发送回WinForms应用程序。数据格式如下:

约翰,32岁,5月

彼得,6月24日

等等

所有这些文本都作为单个字符串发送将此字符串解码为字符串列表[]的最佳方法是什么?

现在我正在使用一种自制的方法。PHP脚本执行以下操作:

  • 首先,我们用“,”分隔每个单词

  • 然后我们用“|”分隔每一行

当我收到信息时,我用“|”字母将其分成一个列表

List name=input.Split('|').ToList();
然后我将列表中的每个字符串分开:

List<string[]> namestwo = new List<string[]>();
foreach (string str in names)
{
string[] sep = str.Split(',').ToArray();
namestwo.Add(sep);
}
List namestwo=new List();
foreach(名称中的字符串str)
{
字符串[]sep=str.Split(',').ToArray();
名称2.添加(sep);
}

我想有更好的方法做这件事。

你的一般方法很好。在发送这样的数据时使用分隔符是很常见的。显然,您需要确保数据中不包含任何逗号(“,”)或管道(“|”),或者正确转义这些字符,然后在解析时正确处理。如果你发现自己有很多逗号或管道,你可以考虑使用其他分隔符(选项卡是一个不错的选择,因为你通常可以用少量的空间代替数据中的所有标签,而不是逃避它们)。 如果愿意,可以稍微清理一下代码。对我来说,这样的东西看起来更好,但从根本上说,它也会做同样的事情:

var result = input.Split('|')
             .Select(line => line.Split(',').ToList()).ToList();

由于您的数据不包含任何实际的逗号(“,”)或管道(“|”),因此这是一种完全可以接受的方法。。但在现实生活中,我并不排除有人在名字中使用逗号的可能性。。i、 e.“尼克,纳姆| e”。。这时情况变得复杂了(整句话都是这样的:“尼克,纳姆,56岁,8月|某人,15岁,5月”)
var result = input.Split('|')
             .Select(line => line.Split(',').ToList()).ToList();