2017-04-13 41 views
0

嗨,我是编程新手。我想读取一个文本文件并采取值(string s)并将string的每个字符分别存储在array中。我使用了一个列表从文本文件中获取值。我发现很难将它们移动到array中,然后在我的程序中使用这些值。如果可能,请找到我的解决方案。提前感谢你。如何将文件从文件列表存储到c中的变量#

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

     }  
    } 
} 
+0

首先声明一个数组然后在你的'foreach'循环中加入数组 – WhatsThePoint

+0

你想存储每一行​​吗?或整个文件作为字符数组? –

+0

@WhatsThePoint谢谢你的回复。如何将列表中的值移动到数组中?我对此很新,不知道语法。 – Rahul

回答

0

“字符串的每一个字符存储在数组中单独”是相当容易的,因为string事实上是一个chararray。为此,您可以使用这样的事情:

char[] letters; 

public void File_Reader() 
{ 
    string filepath = @"env.txt"; 
    letters = File.ReadAllText(filePath).ToArray(); 
} 
1
List<List<char>> linesAsChars = File.ReadAllLines(filepath) 
            .Select(l => l.ToList()) 
            .ToList(); 

这将让字符的目录的列表。
string implements IEnumerable<char>,所以用ToList将文件中的每行都转换为List<char>

+0

我可以问你为什么要把'List'放两次?我以前没有见过这个 – WhatsThePoint

+0

它是'列表'',因此这个列表中的每个项目都是一个字符列表 –

+0

IMO最好使用'SelectMany'而不是'Select',然后你会有一个'清单' –

1

希望这会对你有用!

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

我真的不知道如果我正确地理解你的问题,但是从我读过,我会认为你要行(这是string S)组成的数组。

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

取出for循环和更换

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

有:

letters = File.ReadAllLines(filepath) 

如果你想要的东西实际上是在你的文件中的每个字符值的数组,我要提到@m。 rogalski的回答,并宣布字符数组[],例如,声明:

char[] fileChars; 

然后repla CE我前面提到的行:

fileChars = readAllText(filePath).toCharArray() 

你会发现,你需要在上述任何一种情况下,一个循环。希望我帮助。

相关问题