これはおそらく過剰ですが、C# 7とValueTuple
に基づく拡張方法を使用して、すぐに値を指定できます。例えば:
public static class StringExtensions
{
public static ValueTuple<string, string, string> Split(this string input, string delimiter)
{
var values = input.Split(new[] { delimiter }, StringSplitOptions.None);
return (values[0], values[1], values[2]);
}
}
そして、そのようにそれを使用します。
var (name, buyPrice, sellPrice) = productData.Split(" ");
Console.WriteLine(name);
を編集:実際には、よりスマートな方法があります。ただ、配列を分解するために拡張メソッドを記述します。
public static class ArrayExtensions
{
public static void Deconstruct<T>(this T[] values, out T item1, out T item2, out T item3)
{
item1 = values[0];
item2 = values[1];
item3 = values[2];
}
}
今、あなただけのオリジナルstring.Split
を使用し、最初の例のような値を割り当てることができます。
var (name, buyPrice, sellPrice) = productData.Split(new[] { " " }, StringSplitOptions.None);
'productDataParts'またはその行に沿ったものはありますか? – oerkelens
@ererkelensパーツは良い助言です!...クソ良い! – MichaelMao
名前付きキャプチャで正規表現を使用することもできます。そうすれば、数字の付いた個々の部分を参照する必要はなく、代わりに名前を使用することができます。それは単純な文字列分割のために過度のものかもしれませんが。 – fshauge