Strings. نمای کلی.

string لیستی (یا دنباله ای) از کاراکترها در یک ترتیب خاص است. کل دنباله کاراکترها به عنوان یک شی واحد در نظر گرفته می شود.

یک کاراکتر هر چیزی است که می توانید با یک ضربه کلید (حرف، عدد، معکوس) روی صفحه کلید تایپ کنید. اسلش یا یک کاراکتر دیگر).
رشته ها می توانند دارای فاصله باشند: "Hello world!".
رشته خالی رشته ای است که 0 کاراکتر دارد.
C sharp هر چیزی را که در گیومه نوشته می شود به عنوان رشته می پذیرد ("")، رشته از نوع string است.

مهم به خاطر سپردن: رشته‌ها در سی شارپ غیرقابل تغییر هستند.

می‌توانید با استفاده از عملگر ورودی:
، مقدار جدیدی برای رشته بنویسید <پیش> string s = Console.ReadLine(); همچنین می توانید به سادگی یک مقدار رشته را به متغیر اختصاص دهید، به عنوان مثال:< /span > <پیش> string s = "C sharp"; می توانید طول رشته را به این صورت تعریف کنید: <پیش> int n = s.Length;


مقایسه رشته. رشته ها را می توان مانند اعداد با یکدیگر مقایسه کرد. شما می توانید تعیین کنید که کدام یک از خطوط بزرگتر و کدامیک کمتر است.

هنگام مقایسه رشته‌ها، کدهای کاراکتر مقایسه می‌شوند. ده‌ها، اگر نه صدها، رمزگذاری کاراکتر وجود دارد. ساده‌ترین راه برای درک این مفهوم، درک یکی از ساده‌ترین آنها، ASCII است (می‌توانید در مورد آن اینجا بخوانید< /a>) . 
درک این نکته ضروری است که در رمزگذاری های مدرن، حروف روسی و انگلیسی هر دو به ترتیب حروف الفبا مرتب می شوند، اعداد نیز از کوچکتر به بزرگتر می شوند. 
به عنوان مثال، در جدول کد ASCII، کد حرف انگلیسی 'A' - 65، حروف 'a' - 97، رقم '0' دارای کد 48. حروف روسی در قسمت توسعه یافته جدول کد ASCII (اعداد از 128 تا 255) قرار دارند. حروف بزرگ جلوتر از حروف کوچک می آیند (یعنی کد کوچکتری دارند).
در اکثر جداول رمزگذاری استفاده شده، الگوها یکسان هستند، حروف کوچک دیرتر از حروف بزرگ، اعداد زودتر از حروف و حروف روسی دیرتر از انگلیسی هستند.
هنگام مقایسه کاراکترها یا رشته ها، C# کاراکترها را به مقادیر ترتیبی مربوطه تبدیل می کند و سپس از چپ به راست مقایسه می کند. 

به عنوان مثال: "لوکوموتیو" &آن؛ "کشتی بخار"، زیرا کلمات در حرف پنجم و "در" متفاوت هستند. &آن؛ "x".

هنگامی که یک رشته را وارد می کنید، می توانید بلافاصله آن را با هر جداکننده به قطعات تقسیم کنید.
ما قبل از وقتی چندین متغیر عددی را در یک خط وارد کردیم این کار را انجام دادیم. از روش Split() برای تقسیم یک رشته به قطعات استفاده کردیم. به طور پیش فرض، رشته ها را با فاصله به زیر رشته ها جدا می کند.
با استفاده از این روش می توانید رشته را به قسمت هایی تقسیم کنید، مثلاً با فاصله. و هر قسمت از رشته را در یک متغیر جداگانه بنویسید.
مثال: <پیش> string[] S = Console.ReadLine().Split(); در مثال، هنگام وارد کردن دو کلمه که با فاصله از هم جدا شده اند، کلمه اول در عنصر صفر آرایه s[0] و دومی - در دومین s[1] ذخیره می شود.

اگر نیاز به استفاده از چندین کاراکتر به عنوان جداکننده دارید، می توانید آنها را با کاما از هم جدا کنید:
  <پیش> string[] S = Console.ReadLine().Split(new[] { ' ', '\n' });  اگر می‌تواند چندین فاصله متوالی در رشته ورودی وجود داشته باشد، در آرایه نهایی نیز می‌توان فاصله‌ها ظاهر شود، برای حذف این مورد، باید یک پارامتر اضافه کنید: <پیش> string[] S = Console.ReadLine().Split(new[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries); اگر نیاز به استفاده از جداکننده های زیر رشته ای دارید: <پیش> string[] S = Console.ReadLine().Split(new[] { "\\r\\n", "\r", "\n", "" }, StringSplitOptions.RemoveEmptyEntries);

رشته ها را می توان با استفاده از علامت "+" به هم اضافه کرد. این عملیات الحاق رشته یا پیوند نامیده می شود. 
به عنوان مثال،  <پیش> string s = "سلام,"; string s1 = "world"; Console.WriteLine(s + s1); روی صفحه عبارت "Hello world" (بدون نقل قول).
 

ارجاع به شاخص های ردیف
هر کاراکتر در یک رشته دارای یک عدد است (به نام index) و نمایه سازی در زبان برنامه نویسی سی شارپ از صفر شروع می شود. یعنی کاراکتر اول دارای اندیس 0، دومی - 1 و غیره است.
کاراکترهای رشته را می توان با نمایه هایی که در کروشه های مربع نشان داده شده اند دسترسی داشت.
s[i]  
مثال 
<بدن>
رشته S H e l l o
شاخص S[0] S[1] S[2] S[3] S[4]

مهم!
هنگام دسترسی به یک عنصر رشته در فهرست i، نوع s[i] رشته نیست بلکه char است. این بدان معنی است که این یک رشته نیست، بلکه یک کاراکتر است که با مقداری صحیح در جدول کد کاراکتر مطابقت دارد. به طور خاص، وقتی دو عنصر از نوع char  را اضافه می‌کنید، یک عدد صحیح دریافت می‌کنید - اضافه شدن کدهای این عناصر. با این حال، اگر s[i] را نمایش دهید، کاراکتر i-امین رشته نمایش داده می‌شود، نه عدد مربوط به آن. 

از آنجایی که یک کاراکتر با نمایه قابل دسترسی است، می توان از یک حلقه متغیر برای تکرار روی همه کاراکترها استفاده کرد. ، که مقادیر شاخص ممکن را می گیرد. برای مثال، برنامه‌ای که تمام کدهای کاراکترهای رشته s را نمایش می‌دهد به این شکل است: <پیش> برای (int i = 0; i < s.Length; i++) {   Console.WriteLine(s[i]); Console.WriteLine(Convert.ToInt32(s[i])); } یادداشت های برنامه:
1) s.Length طول یک رشته را پیدا می کند. شاخص اولین کاراکتر 0 و شاخص آخرین کاراکتر s.Length-1 است. متغیر حلقه i فقط مقادیری را به ترتیب از 0 تا 
s.Length-1;
2) در هر خط ابتدا خود نماد و سپس کد آن نمایش داده می شود که از طریق روش  Convert.ToInt32();
قابل دریافت است.
همین شمارش را می توان کوتاهتر نوشت:


foreach (کاراکتر c در s)

    Console.WriteLine(c);
    Console.WriteLine(Convert.ToInt32(c));
}
<پیش> در این قطعه، هدر حلقه در تمام ها حلقه می شود کاراکترها را یکی یکی در متغیر c قرار دهید. ویژگی سی شارپ هنگام کار با رشته ها این است که رشته ها اشیایی تغییرناپذیر هستند. به عبارت دیگر، ما نمی‌توانیم تک تک کاراکترهای یک رشته را تغییر دهیم.
برای مثال، عبارت زیر کار نخواهد کرد:
<پیش> s[5]=" ";