3

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

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

约翰,32 岁,可能

彼得,6 月 24 日

ETC..

所有这些文本都作为单个字符串发送。将这个字符串破译成字符串列表的最佳方法是什么?

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

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

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

当我收到消息时,我使用“|”将其划分为一个列表 信

List<string> names = input.Split('|').ToList<string>();

然后我在列表中划分每个字符串:

List<string[]> namestwo = new List<string[]>();
foreach (string str in names)
{
string[] sep = str.Split(',').ToArray();
namestwo.Add(sep);
}

我想有更好的方法来做到这一点..

4

1 回答 1

0

你的一般方法很好。在发送这样的数据时使用分隔符是很常见的。显然,您需要确保您的数据中永远不会包含任何逗号 (',') 或竖线 ('|'),或者正确转义这些字符,然后在解析时正确处理它。如果您发现自己有很多逗号或管道,您可以考虑使用其他分隔符(制表符是一个不错的选择,因为您通常可以用几个空格替换数据中的所有制表符,而不是转义它们)。

如果您愿意,可以稍微清理一下代码。像这样的东西对我来说看起来更好,但它基本上会做同样的事情:

var result = input.Split('|')
             .Select(line => line.Split(',').ToList()).ToList();
于 2012-07-18T18:21:23.090 回答