वहाँ एक आसान तरीका है एक सरणी उत्पन्न करने के लिए वर्णमाला के अक्षरों में C #? इसे हाथ से करना बहुत कठिन नहीं है, लेकिन मैं सोच रहा था कि क्या ऐसा करने के लिए कोई रास्ता बनाया गया था।
वहाँ एक आसान तरीका है एक सरणी उत्पन्न करने के लिए वर्णमाला के अक्षरों में C #? इसे हाथ से करना बहुत कठिन नहीं है, लेकिन मैं सोच रहा था कि क्या ऐसा करने के लिए कोई रास्ता बनाया गया था।
जवाबों:
मुझे नहीं लगता कि वहाँ एक तरह से बनाया गया है, लेकिन मुझे लगता है कि सबसे आसान होगा
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
C # 3.0:
char[] az = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToArray();
foreach (var c in az)
{
Console.WriteLine(c);
}
हाँ, यह काम करता है, भले ही Enumerable का एकमात्र अधिभार.रंग int मापदंडों को स्वीकार करता है; ;-)
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();
आप इस तरह से कुछ कर सकते हैं, पात्रों के अस्सी के मूल्यों के आधार पर:
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
}
( यहां तालिका देखें ।) आप सिर्फ चरित्र के अंतर मूल्य से चरित्र मूल्य तक कास्ट कर रहे हैं - लेकिन, यह केवल अस्सी वर्णों के लिए काम करता है न कि विभिन्न भाषाओं आदि के लिए।
संपादित करें: जैसा कि मेहरदाद द्वारा एक समान समाधान के लिए टिप्पणी में सुझाया गया है , ऐसा करना बेहतर है:
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()}");
}
}