C# 如何将文件列表中的文本存储到c中的变量中
嗨,我是编程新手。我想读取一个文本文件,获取字符串的值,并将字符串的每个字符分别存储在一个数组中。我使用了一个列表从文本文件中获取值。我发现很难将它们移动到数组中,然后在程序中使用这些值。如果可能的话,请给我一个解决方案。先谢谢你C# 如何将文件列表中的文本存储到c中的变量中,c#,list,file-io,C#,List,File Io,嗨,我是编程新手。我想读取一个文本文件,获取字符串的值,并将字符串的每个字符分别存储在一个数组中。我使用了一个列表从文本文件中获取值。我发现很难将它们移动到数组中,然后在程序中使用这些值。如果可能的话,请给我一个解决方案。先谢谢你 public class file_IO { string[] letters = new string[] //I would like to store it in this variable public void File_Reader()
public class file_IO
{
string[] letters = new string[] //I would like to store it in this variable
public void File_Reader()
{
string filepath = @"env.txt"; //Variable to hold string
List<string> file_lines = File.ReadAllLines(filepath).ToList();//returns array of strings into List
foreach (string line in file_lines)
{
}
}
}
将字符串的每个字符单独存储在一个数组中的解决方案相当简单,因为字符串实际上是一个字符数组。您可以使用以下方法来完成此操作:
char[] letters;
public void File_Reader()
{
string filepath = @"env.txt";
letters = File.ReadAllText(filePath).ToArray();
}
将字符串的每个字符单独存储在一个数组中的解决方案相当简单,因为字符串实际上是一个字符数组。您可以使用以下方法来完成此操作:
char[] letters;
public void File_Reader()
{
string filepath = @"env.txt";
letters = File.ReadAllText(filePath).ToArray();
}
这将得到一个字符列表。
string实现了IEnumerable,因此通过ToList,文件中的每一行都被转换为List
这将得到一个字符列表。
字符串实现IEnumerable,因此使用ToList,文件中的每一行都被转换为列表。希望这对您有用
public char[] File_Reader()
{
string filepath = @"env.txt"; //Variable to hold string
StreamReader sr = new StreamReader(filepath);
string fileContentInString = sr.ReadToEnd();
sr.Close();
return fileContentInString.ToCharArray();
}
希望这对你有用
public char[] File_Reader()
{
string filepath = @"env.txt"; //Variable to hold string
StreamReader sr = new StreamReader(filepath);
string fileContentInString = sr.ReadToEnd();
sr.Close();
return fileContentInString.ToCharArray();
}
我不确定我是否正确理解了你的问题,但根据我所读到的,我假设你想要一个字符串行数组 在这种情况下,您不需要做很多事情,因为File.ReadAllLines方法自然地输出字符串变量数组 拆下for回路并更换
List<string> file_lines = File.ReadAllLines(filepath).ToList();//returns array of strings into List
如果您想要的实际上是文件中每个char值的数组,我将参考@m.rogalski的答案并声明char[]的数组,例如,声明:
char[] fileChars;
然后将我前面提到的行替换为:
fileChars = readAllText(filePath).toCharArray()
您会注意到,在上述任何一种情况下都不需要循环。希望我能帮上忙。我不确定是否正确理解了您的问题,但根据我所读的内容,我假设您需要一个字符串行数组 在这种情况下,您不需要做很多事情,因为File.ReadAllLines方法自然地输出字符串变量数组 拆下for回路并更换
List<string> file_lines = File.ReadAllLines(filepath).ToList();//returns array of strings into List
如果您想要的实际上是文件中每个char值的数组,我将参考@m.rogalski的答案并声明char[]的数组,例如,声明:
char[] fileChars;
然后将我前面提到的行替换为:
fileChars = readAllText(filePath).toCharArray()
您会注意到,在上述任何一种情况下都不需要循环。希望我能帮上忙。先声明一个数组,然后在foreach循环中添加到数组中。要存储每一行吗?还是将整个文件作为字符数组?@WhatstThePoint感谢您的回复。如何将值从列表移动到数组?我对此很陌生,不知道语法。@OfirWinegarten我想存储每一行。因为我需要在主程序的另一个类中使用这些值并对它们进行操作。声明数组myArray,然后在foreach循环中放入myArray。AddLine首先声明数组,然后在foreach循环中添加到数组中是否要存储每一行?还是将整个文件作为字符数组?@WhatstThePoint感谢您的回复。如何将值从列表移动到数组?我对此很陌生,不知道语法。@OfirWinegarten我想存储每一行。因为我需要在主程序的另一个类中使用这些值并对它们进行操作。声明数组myArray,然后在foreach循环中放入myArray。AddLine我可以问一下为什么要两次放入列表吗?我以前没有见过这个列表,所以这个列表中的每一项都是字符列表。所以最好使用SelectMany而不是Select,这样你就有了一个List@m.rogalski据我所知,OP希望每一行都是分开的。如果他想要一个完整内容的列表,那么你提供的解决方案就足够了。是的,我同意这个问题有点让人困惑,我不知道他是想要每一行的每一个字符还是整个文本中的每一个字符:我能问你为什么要把列表放两次吗?我以前没有见过这个列表,所以这个列表中的每一项都是字符列表。所以最好使用SelectMany而不是Select,这样你就有了一个List@m.rogalski据我所知,OP希望每一行都是分开的。如果他想要一个完整内容的列表,那么你提供的解决方案就足够了。是的,我同意这个问题有点令人困惑,我不知道他是想要每行中的每一个字符还是整个文本中的每一个字符: