将字符串添加到C#中的列表中,一次添加一个
我对C语言相当陌生,所以这是我遇到的一个相当基本/简单的问题。我不太知道如何将这些字母中的每一个都添加到一个列表中,以便在末尾将它们全部列成一行。例如,有一个“IF/ELSE”语句,但两个语句都在末尾生成一个字母。这是我迄今为止的代码,我将感谢任何帮助/输入(请注意,我2天前开始学习该语言!)将字符串添加到C#中的列表中,一次添加一个,c#,list,C#,List,我对C语言相当陌生,所以这是我遇到的一个相当基本/简单的问题。我不太知道如何将这些字母中的每一个都添加到一个列表中,以便在末尾将它们全部列成一行。例如,有一个“IF/ELSE”语句,但两个语句都在末尾生成一个字母。这是我迄今为止的代码,我将感谢任何帮助/输入(请注意,我2天前开始学习该语言!) 您需要将“加密”的每个字符保存在内存中,当您退出循环时,您可以构建新的“加密”字符串 .... List<char> newChars = new List<char>(); fo
您需要将“加密”的每个字符保存在内存中,当您退出循环时,您可以构建新的“加密”字符串
....
List<char> newChars = new List<char>();
foreach (char c in lower)
{
int unicode = c;
int shiftUnicode = unicode + shift;
//Console.WriteLine(shiftUnicode);
if (shiftUnicode >= 123)
{
int overflowUnicode = 97 + (shiftUnicode - 123);
char character = (char)overflowUnicode;
newChars.Add(character);
}
else
{
char character = (char)shiftUnicode;
newChars.Add(character);
}
}
string newString = new string(newChars.ToArray());
Console.WriteLine(newString);
....
。。。。
List newChars=新列表();
foreach(下部为字符c)
{
int=c;
int-shiftUnicode=unicode+shift;
//控制台写入线(代码);
如果(代码>=123)
{
int overflowUnicode=97+(移位码-123);
字符=(字符)溢出Unicode;
newChars.Add(字符);
}
其他的
{
字符=(字符)移位码;
newChars.Add(字符);
}
}
string newString=新字符串(newChars.ToArray());
Console.WriteLine(新闻字符串);
....
我认为您要做的是将每个字符相加为一个字符串。您尝试使用名为newText
的变量执行此操作,但随着循环的继续,newText
的值将被覆盖。if (shiftUnicode >= 123)
{
int overflowUnicode = 97 + (shiftUnicode - 123);
char character = (char)overflowUnicode;
// value gets overwritten here
string newText = character.ToString();
}
else
{
char character = (char)shiftUnicode;
// value gets overwritten here
string newText = character.ToString();
}
您需要做的是:-在您的
foreach
循环上方定义newText
,以便您可以访问其范围之外的内容-将任何新字符追加到
newText
的末尾,而不是覆盖其值-使用
Console.WriteLine()
我看不到你试图将角色添加到列表中的任何地方。在每个循环中,我只能看到一个由单个字符创建的新字符串而不是
=System.Convert.ToString(Console.ReadLine())代码>。嗨,史蒂夫,这是因为每次我试图创建一个列表时,我都会出现构建错误,甚至不知道如何处理这种情况。老实说,我甚至不知道如何定义一份清单。谢谢dcg:)
if (shiftUnicode >= 123)
{
int overflowUnicode = 97 + (shiftUnicode - 123);
char character = (char)overflowUnicode;
// value gets overwritten here
string newText = character.ToString();
}
else
{
char character = (char)shiftUnicode;
// value gets overwritten here
string newText = character.ToString();
}
using System;
namespace caesarCipher
{
class Program
{
static void Main(string[] args)
{
string text;
Console.WriteLine("Enter the text to encrypt ");
text = System.Convert.ToString(Console.ReadLine());
string lower = text.ToLower();
Random rnd = new Random();
int shift = rnd.Next(1, 25);
// declare and initialize newText here
string newText = string.Empty;
foreach (char c in lower)
{
int unicode = c;
int shiftUnicode = unicode + shift;
Console.WriteLine(shiftUnicode);
if (shiftUnicode >= 123)
{
int overflowUnicode = 97 + (shiftUnicode - 123);
char character = (char)overflowUnicode;
// append the new character to newText
newText += character;
}
else
{
char character = (char)shiftUnicode;
// append the new character to newText
newText += character;
}
}
// Print the value of newText to the Console
Console.WriteLine(newText);
Console.ReadLine();
}
}
}