繁体   English   中英

如何将文本从文件列表存储到C#中的变量中

[英]How to store text from a file-list into a variable in c#

嗨,我是编程新手。 我想读取文本文件和取的值( string S)和中的每个字符存储string在一个array个别地。 我使用了一个列表来从文本文件中获取值。 我发现很难将它们移动到array ,然后在程序中使用这些值。 如果可能的话,请给我找到解决方案。 预先感谢您。

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)
        {

        }     
    }
}
List<List<char>> linesAsChars = File.ReadAllLines(filepath)
                                    .Select(l => l.ToList())
                                    .ToList();

这将获得一个字符列表。
string实现IEnumerable<char> ,因此使用ToList时,文件中的每一行都转换为List<char>

希望这对您有用!

 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();
  }  

“将字符串的每个字符分别存储在数组中”的解决方案非常简单,因为string实际上是chararray 您可以使用类似以下方式进行此操作:

char[] letters;

public void File_Reader()
{
    string filepath = @"env.txt";
    letters = File.ReadAllText(filePath).ToArray();
}

我不确定我是否正确理解了您的问题,但是从我阅读的内容中,我将假定您需要一个行数组(即string )。

在这种情况下,您不需要做太多事情,因为File.ReadAllLines()方法自然会输出一个string变量数组。

删除for循环并替换

List<string> file_lines = File.ReadAllLines(filepath).ToList();//returns array of strings into List

与:

letters = File.ReadAllLines(filepath)

如果您想要的实际上是文件中每个char值的数组,我将参考@ m.rogalski的答案并声明一个char []数组,例如,声明:

char[] fileChars;

然后将我前面提到的行替换为:

fileChars = readAllText(filePath).toCharArray()

您会发现在以上两种情况下都不需要循环。 希望我能帮上忙。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM