2

C#についての質問です。私は文字列を持っています」value1=1234;value2=2345;value3=3456;value4= ..."

値を取得する最良の方法は何ですか?

考えましString.Split(";")たが、値のみを取得する方法がわかりません。取得した結果には、不要なプレフィックスが含まれています。他に何もない値だけが必要"1234", "2345", "3456"...で、それらは文字列のリストに入れられます。

これを解決するにはどうすればよいですか?ありがとう。

4

2 に答える 2

10

形式が常に固定されている場合は、LINQ を使用してかなり簡単に行うことができます。

List<string> values = theString.Split(';').Select(s => s.Split('=')[1]).ToList();

入力文字列がセミコロンで終わる場合、次のように使用RemoveEmptyEntriesできます。

List<string> values = theString
                         .Split(new[]{';'}, StringSplitOptions.RemoveEmptyEntries)
                         .Select(s => s.Split('=')[1]).ToList();

これにより、 内で例外が発生するのを防ぐことができますSelect。ただし、入力がセミコロンで終わらない場合、これは必要ありません。

于 2013-10-02T19:18:37.413 に答える
4
var text =  "value1=1234;value2=2345;value3=3456;value4= ...";
var pieces = text.Split('=');
var values = new Dictionary<string,string>();

for(int index = 0; index < pieces.Length; index += 2)
{
    values.Add(pieces[index], pieces[index + 1]);
}

これにより、キーが「=」の左側であり、値が値の文字列表現であるペアの辞書が得られます。これにより、次のことが可能になります。

var value1 = values["value1"];
var value2 = values["value2"];
于 2013-10-02T19:20:51.590 に答える