يمكنني تقسيم سلسلة في ج # غرار VB6 دون الرجوع Microsoft.VisualBasic؟
سؤال
ولسوء الحظ، يبدو أن هناك أي string.Split (سلسلة فاصل)، string.Split فقط (شار speparator).
وأريد لتفريق سلسلة بلدي على أساس فاصل متعددة حرف، وVB6 لوس انجليس. هل هناك وسيلة سهلة (وهذا هو، وليس عن طريق الرجوع Microsoft.VisualBasic أو الحاجة إلى تعلم RegExes) طريقة للقيام بذلك في ج #؟
وتحرير: استخدام الإطار الصافي 3.5
المحلول
وString.Split()
ديه الزائدة الأخرى. بعض منهم اتخاذ الحجج string[]
.
string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
نصائح أخرى
والتعبير المعتاد لسلسلة انشقاق بسيط للغاية لذلك كنت اذهب مع هذا الطريق.
وأي إصدار من صافي؟ 2.0 على الأقل يتضمن فصاعدا الزائدة التالية:
.Split(string[] separator, StringSplitOptions options)
.Split(string[] separator, int count, StringSplitOptions options)
والآن إذا كان لديهم إصلاحه فقط لقبول أي IEnumerable <سلسلة> بدلا من مجموعة عادلة.
والنسخة التعابير المنطقية وربما أجمل ولكن هذا يعمل أيضا:
string[] y = { "bar" };
string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
Console.WriteLine(s);
وهذا سوف طباعة فو مرتين.
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);
وأنا استخدم هذا تحت الصافي 2.0 في كل وقت.
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);