2017-04-13 69 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() 

你會發現,你需要在上述任何一種情況下,一個循環。希望我幫助。

相關問題