فرض کنید ما یک متن شبیه به زیر داشته باشیم :
abcdefghij
و بعد بخواهیم این متن را سه کاراکتر سه کاراکتر شمارش کرده و هر کدام را در یک رشته جدید یا آرایه جدید ذخیره کنیم . به طوری که رشته ها شبیه زیر شوند :
abc
def
ghi
j
روش اول
قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.
IEnumerable<string> GetNextChars ( string str, int iterateCount ) { var words = new List<string>(); for ( int i = 0; i < str.Length; i += iterateCount ) if ( str.Length - i >= iterateCount ) words.Add(str.Substring(i, iterateCount)); else words.Add(str.Substring(i, str.Length - i)); return words; }
برای استفاده از این تابع از خط کد زیر استفاده کنید :
foreach (var v in GetNextChars(your_textbox.Text, 50)) { MessageBox.Show(v); }
روش دوم
می توانید از این قطعه کد استفاده کنید:
IEnumerable<string> Split(string str) { for (int i = 0; i < str.Length; i += 3) yield return str.Substring(i, Math.Min(str.Length - i, 3)); }
روش سوم
این قطعه کد کاراکترها را در گروه های 3 تایی گروه بندی می کند و هر گروه را به یک رشته تبدیل می کند.
string s = "abcdefghij"; var split = s.Select((c, index) => new {c, index}) .GroupBy(x => x.index/3) .Select(group => group.Select(elem => elem.c)) .Select(chars => new string(chars.ToArray())); foreach (var str in split) Console.WriteLine(str);
روش چهارم
می توانید از کتابخانه Linq استفاده کنید
static IEnumerable<string> Split(string str) { while (str.Length > 0) { yield return new string(str.Take(3).ToArray()); str = new string(str.Skip(3).ToArray()); } }
روش پنجم
می توانید از یک روش جدیدتری استفاده کنید. در این قطعه کد از آرایه ها استفاده شده است.
string[] MySplit(string input) { List<string> results = new List<string>(); int count = 0; string temp = ""; foreach(char c in input) { temp += c; count++; if(count == 3) { result.Add(temp); temp = ""; count = 0; } } if(temp != "") result.Add(temp); return result.ToArray(); }
کدهای بیشتر - سی شارپ
جستجو یک متن در یک آرایه سی شارپ #C
1 Comments
ببخشید درباره این خط کد بیشتر توضیح میدید ؟
List results = new List();
سلام
یک لیست متنی جدید ایجاد میکنه