Подтвердить что ты не робот

С# как преобразовать File.ReadLines в массив строк?

Вопрос, который у меня есть, заключается в преобразовании процесса чтения строк из текстового файла в массив, а не просто его чтения.

Ошибка в моих кодах появляется в string[] lines = File.ReadLines("c:\\file.txt"); с невозможностью преобразования implicity....

Может кто-нибудь проконсультироваться по кодам, чтобы сохранить результаты в формате массива? Я поместил код ReadAllLines, который также может сохранить результаты в массиве. Спасибо!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace Testing
{
class Analysis
{
    static void Main()
    {
        string[] lines = File.ReadLines("c:\\file.txt");

        foreach (string r in lines)
        {
            Console.WriteLine("-- {0}", r);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
}

Коды ReadAllLines:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace Testing
{
class ReadFromFile
{
    static void Main()
    {
        string[] lines = System.IO.File.ReadAllLines
        (@"C:\Users\Public\TestFolder\WriteLines2.txt");

        System.Console.WriteLine("Contents of writeLines2.txt =:");
        foreach (string line in lines)
        {
            Console.WriteLine("\t" + line);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
}
4b9b3361

Ответ 1

File.ReadLines() возвращает объект типа System.Collections.Generic.IEnumerable<String>
File.ReadAllLines() возвращает массив строк.

Если вы хотите использовать массив строк, вам нужно вызвать правильную функцию.

Вы можете использовать решение Jim, просто используйте ReadAllLines() или вы можете изменить тип возврата.

Это также сработает:

System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("c:\\file.txt");

Вы можете использовать любую общую коллекцию, которая реализует IEnumerable. IList для примера.

Ответ 2

string[] lines = File.ReadLines("c:\\file.txt").ToArray();

Хотя вы задаетесь вопросом, почему вы захотите сделать это, когда ReadAllLines работает просто отлично.

Или, возможно, просто хотите перечислить возвращаемое значение File.ReadLines:

var lines = File.ReadAllLines("c:\\file.txt");
foreach (var line in lines)
{
    Console.WriteLine("\t" + line);
}

Ответ 3

Измените string[] lines = File.ReadLines("c:\\file.txt"); на IEnumerable<string> lines = File.ReadLines("c:\\file.txt"); Остальная часть вашего кода должна работать нормально.