あなたは反復ライン・バイ・ラインを試してみて、行が記述の一部であるかどうかを判断したり、それは「詳細」です場合があります。あなたが手の前に可能なすべての詳細を知っている唯一の要件小胞体。
このような何かがうまくいくかもしれない(テストしていません):このコードから「テキスト」を実行した後
string[] detailTypes = {"Farve:", "Materiale:"}; // Add any number of details here if there are more
StringBuilder description = new StringBuilder();
List<String> details = new List<String>();
foreach (string line in new LineReader(() => new StringReader(text))) // text is the whole string
{
bool isDetail = false;
foreach(string det in detailTypes)
{
if(line.StartsWith(det))
{
isDetail = true;
break;
}
}
if(isDetail)
details.Add(line);
else
description.AppendLine(line);
}
、あなたはthatyour説明のStringBuilder氷全体の説明を見つけるだろう、と詳細がでます文字列のリスト。
次のような記述の文字列値を取得することができます:あなたのすべての詳細情報は、コードの先頭に配列している場合description.ToString()
これはしかし、動作します。しかし、あなたは、可能なすべての詳細を知らない場合、およびtheyhave無いユニークな区切り文字は、コンピュータは、entenをその人自身を知ることができません。
代替:あなたは詳細がわからない場合
あなたはコロンを使用することができます。代わりにif(line.StartsWith(det))
のあなたは、このアプローチを選択した場合、あなたはif(line.Contains(":"))
ような何かを行うことができ、内側のforeachループとdetailTypes配列を取り除きます。
編集:
編集2ホルヘTurrado
は 'Farve'は常に説明を区切るありますか? – Pikoh
私はそれがないとは思いません。これは問題です。私たちは最初の部分では全くDEMを使用するとは思わない原因私は、コロンを考えていました。 –
はその後、それは私たちにとって非常にbesværligt2つのフルです。あなたは、第1の共通のセパレータを見つけるすべてのケース2をanalizeしなければならない – Pikoh