يمكنني تقسيم سلسلة في ج # غرار VB6 دون الرجوع Microsoft.VisualBasic؟

StackOverflow https://stackoverflow.com/questions/154706

  •  03-07-2019
  •  | 
  •  

سؤال

ولسوء الحظ، يبدو أن هناك أي 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 );

نصائح أخرى

والتعبير المعتاد لسلسلة انشقاق بسيط للغاية لذلك كنت اذهب مع هذا الطريق.

http://msdn.microsoft.com/en-us/library /8yttk7sy.aspx

وأي إصدار من صافي؟ 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);

http://msdn.microsoft.com/en-us/ مكتبة / tabh47cf.aspx

وأنا استخدم هذا تحت الصافي 2.0 في كل وقت.

string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top