1

次のようなファイルにいくつかの値があります:

"SHOP_6ABC003"、 "SHOP_6ABC002"

しかし、これは次のように表すこともできます

'SHOP_6ABC003、' SHOP_6ABC002 '

または、次のように、二重引用符または一重引用符がない場合でも、次のようになります。

SHOP_6ABC003、SHOP_6ABC002

今、私はそれが二重引用符であると仮定して私のコードを書いています:

   String orderValue = "";
   orderValue = File.ReadAllText(@"C:\Users\Documents\File.txt");

   string[] orderArray = GetList(orderValue, SHOP_PREFIX);

            foreach (var item in orderArray)
            {
                Console.WriteLine(item);
            }


private static string[] GetList(string fileText,string prefix)
        {
            string[] orderArray;
            String orderValue = "";

            orderValue = fileText.Replace(prefix, "");
            orderArray = orderValue.Split(',').Select(x => x.Trim('"')).ToArray();

            return orderArray;


        }

しかし、ここでの問題は、誰かが一重引用符で囲まれた値を提供するか、引用符なしで提供する場合、望ましくない出力が得られることです。ソリューションを一般化して、二重引用符または一重引用符の中にある場合、または引用符なしの場合と同じようにする方法はありますか?

4

2 に答える 2

4

トリミングしたい文字でchar配列を作成してみませんか?

char[] ch = { '\'', '"'};
orderArray = orderValue.Split(',').Select(x => x.Trim(ch)).ToArray();
于 2013-03-01T08:58:35.120 に答える
1

var orderValue = fileText.Replace(prefix、 ""); orderArray = orderValue.Split('、')。ToArray();

「」または「」で再度トリミングする必要はありません

于 2013-03-01T09:01:55.457 に答える