3

Web サイトに配置されている PHP スクリプトがあります。WebRequest/WebResponse アプローチを使用して POST メッセージを送信する C# winforms プログラムもあります。

この PHP スクリプトは mysql データベースに接続し、データを取得して WinForms アプリに送り返します。データの形式は次のとおりです。

ジョン、32歳、5月

ピーター、24歳、6月

等..

このテキストはすべて単一の文字列として送信されます。この文字列を文字列のリスト [] に解読する最良の方法は何ですか?

現在、私は自作のアプローチを使用しています。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 に答える