C # তে বর্ণমালার অক্ষর সম্বলিত একটি অ্যারে তৈরি করার কী সহজ উপায় আছে? এটি হাতে হাতে করা খুব কঠিন নয়, তবে আমি ভাবছিলাম যে এটি করার মতো কোনও বিল্ট আছে কিনা।
C # তে বর্ণমালার অক্ষর সম্বলিত একটি অ্যারে তৈরি করার কী সহজ উপায় আছে? এটি হাতে হাতে করা খুব কঠিন নয়, তবে আমি ভাবছিলাম যে এটি করার মতো কোনও বিল্ট আছে কিনা।
উত্তর:
আমি মনে করি না যে সেখানে কোনও বিল্ট ইন আছে, তবে আমি মনে করি সবচেয়ে সহজ হবে
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
সি # 3.0:
char[] az = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToArray();
foreach (var c in az)
{
Console.WriteLine(c);
}
হ্যাঁ এটি কেবলমাত্র গণ্যমানের ওভারলোডের কাজ করে। রেঞ্জ ইন্ট প্যারামিটারগুলি গ্রহণ করে ;-)
String.Concat(Enumerable.Range('a', 'z' - 'a' + 1).Select(c => ((char)c).ToString().ToUpperInvariant()));
প্রত্যাবর্তন ABCDEFGHIJKLMNOPQRSTUVWXYZ
;
Enumerable.Range('a', 26)
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
আমি 1-ভিত্তিক সূচকের ভিত্তিতে এমএস এক্সেল কলাম কোড (এ, বি, সি, ..., জেড, এএ, এবি, ..., জেডজেড, এএএ, এএবি, ...) পাওয়ার জন্য এটি লিখেছিলাম। (অবশ্যই, শূন্য-ভিত্তিকে স্যুইচ করা কেবল column--;
শুরুতে প্রস্থান করে ।)
public static String getColumnNameFromIndex(int column)
{
column--;
String col = Convert.ToString((char)('A' + (column % 26)));
while (column >= 26)
{
column = (column / 26) -1;
col = Convert.ToString((char)('A' + (column % 26))) + col;
}
return col;
}
Convert.ToString
সঙ্গে String.valueOf
করে তোলে জাভা কাজ :)
ধরে নিচ্ছি আপনি ইংরেজি বর্ণমালার অক্ষর বোঝাচ্ছেন ...
for ( int i = 0; i < 26; i++ )
{
Console.WriteLine( Convert.ToChar( i + 65 ) );
}
Console.WriteLine( "Press any key to continue." );
Console.ReadKey();
আপনি অক্ষরের ascii মানগুলির উপর ভিত্তি করে এমন কিছু করতে পারেন:
char[26] alphabet;
for(int i = 0; i <26; i++)
{
alphabet[i] = (char)(i+65); //65 is the offset for capital A in the ascaii table
}
( এখানে টেবিলটি দেখুন )) আপনি কেবলমাত্র অক্ষরের ইনট মান থেকে চরিত্রের মানতে কাস্ট করছেন - তবে, এটি কেবল ভিন্ন ভাষাগুলি নয়, এএসসিআই অক্ষরের জন্য কাজ করে etc.
সম্পাদনা: অনুরূপ সমাধানের মন্তব্যে মেহরদ্দদের পরামর্শ অনুসারে এটি করা ভাল:
alphabet[i] = (char)(i+(int)('A'));
এটি A চরিত্রটিকে এর মান হিসাবে এবং তারপরে এটিগুলির উপর ভিত্তি করে ইনক্রিমেন্ট যুক্ত করে, তাই এটি হার্ডকোডযুক্ত নয়।
char[] alphabet = new char[26];
?
এছাড়াও নোট করুন, স্ট্রিংটিতে একটি অপারেটর রয়েছে [] যা একটি চর দেয় এবং এটি একটি IEnumerable<char>
, তাই বেশিরভাগ উদ্দেশ্যে, আপনি একটি চরটি চর হিসাবে ব্যবহার করতে পারেন []। সুতরাং:
string alpha = "ABCDEFGHIJKLMNOPQRSTUVQXYZ";
for (int i =0; i < 26; ++i)
{
Console.WriteLine(alpha[i]);
}
foreach(char c in alpha)
{
Console.WriteLine(c);
}
অবাক হয়ে কেউ ফলন সমাধানের পরামর্শ দেয়নি:
public static IEnumerable<char> Alphabet()
{
for (char letter = 'A'; letter <= 'Z'; letter++)
{
yield return letter;
}
}
উদাহরণ:
foreach (var c in Alphabet())
{
Console.Write(c);
}
for
লুপ লেখার একটি উদ্ভট উপায় ।
yield return
অংশটি বোঝায় তবে এটি লুপের জন্য আসলেই সমতুল্য নয়। এটি এমন যে এটি অবিরাম সিরিজটি অলসভাবে ফেরত দিতে ব্যবহার করা যেতে পারে।
while
সাথে একটি পাল্টা রয়েছে যা প্রতিটি পালা বৃদ্ধি করে এবং একটি নির্দিষ্ট মান হিসাবে শেষ হয়। ঠিক এটিই for
প্রতিস্থাপনের জন্য ডিজাইন করা হয়েছিল।
var alphabets = Enumerable.Range('A', 26).Select((num) => ((char)num).ToString()).ToList();
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
string anchorLetter = i.ToString();
}
char alphaStart = 'A';
ডাবল কোটের পরিবর্তে একক উদ্ধৃতি সহ কেবল ব্যবহার করুন ।
//generate a list of alphabet using csharp
//this recurcive function will return you
//a string with position of passed int
//say if pass 0 will return A ,1-B,2-C,.....,26-AA,27-AB,....,701-ZZ,702-AAA,703-AAB,...
static string CharacterIncrement(int colCount)
{
int TempCount = 0;
string returnCharCount = string.Empty;
if (colCount <= 25)
{
TempCount = colCount;
char CharCount = Convert.ToChar((Convert.ToInt32('A') + TempCount));
returnCharCount += CharCount;
return returnCharCount;
}
else
{
var rev = 0;
while (colCount >= 26)
{
colCount = colCount - 26;
rev++;
}
returnCharCount += CharacterIncrement(rev-1);
returnCharCount += CharacterIncrement(colCount);
return returnCharCount;
}
}
//--------this loop call this function---------//
int i = 0;
while (i <>
{
string CharCount = string.Empty;
CharCount = CharacterIncrement(i);
i++;
}
if
এবং while
বিবৃতিগুলি দেখুন)
কনসোলে 4 টি উপায় ইংরেজি বর্ণমালা পান:
public void ShowEnglishAlphabet()
{
var firstLetter = 'a';
var endLetter = 'z';
for (var letter = firstLetter; letter <= endLetter; letter++)
{
Console.WriteLine($"{letter}-{letter.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetFromUnicodeTableDecNumber()
{
var firstLetter = 97;
var endLetter = 122;
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{(char)letterNumberUnicodeTable}-
{((char)letterNumberUnicodeTable).ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableEscapeSequence()
{
var firstLetter = '\u0061';
var endLetter = '\u007A';
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{letterNumberUnicodeTable}-
{letterNumberUnicodeTable.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableLinq()
{
var alphabets = Enumerable.Range('a', 26).Select(letter =>
((char)letter).ToString()).ToList();
foreach (var letter in alphabets)
{
Console.WriteLine($"{letter}-{letter.ToUpper()}");
}
}