Aby skomentować użycie ReadAllLines()
w komentarzu OP do odpowiedzi CSharpie; może to mieć ogromny wpływ na wydajność, jeśli MyFile.txt
jest bardzo dużym plikiem.
File.ReadAllLines().First()
będzie faktycznie czytać wszystkie linii, przechowywać je w string[]
, a następnie podjąć pierwszą. Dlatego jeśli twój plik jest bardzo duży, zapisze wszystkie te linie w tablicy, co może trochę potrwać.
Alternatywną i skuteczniejszą opcją byłoby po prostu otwarcie StreamReader
i przeczytanie tylko pierwszej linii. Właściwa implementacja byłaby;
String[] languages = new String[] { "english", "french", "german"};
string firstLine;
using(StreamReader reader = new StreamReader("MyFile.txt"))
{
firstLine = reader.ReadLine() ?? "";
}
if(languages.Contains(firstLine))
{
//...
}
Zastosowanie using
zadba o zamknięciu i likwidacji czytelnika. Ponadto użycie ??
spowoduje, że null
nigdy nie zostanie zwrócony (a tym samym zaoszczędzisz ArgumentNullException
na Contains()
).
sprawdź ten wpis: http://stackoverflow.com/questions/9439733/read-only-the-fewst-few-lines-of-text-from-a-file – abdo