2014-01-04 3 views
1

Это мой код:не может преобразовать из «строка» до «System.Collections.Generic.IEnumerable <string>

string path = @"c:\temp\mytext.txt"; 
string[] lines = System.IO.File.ReadAllLines(path); 

foreach (var line in lines) 
{ 
    var firstValue = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0]; 
    Console.WriteLine(firstValue); 

    System.IO.File.WriteAllLines(@"C:\temp\WriteLines.txt", firstValue); 
} 

Я хочу, чтобы экспортировать свою первое значение в текстовый файл. Как я могу экспортировать его?

Я получаю эту ошибку:

Cannot convert from 'string' to 'System.Collections.Generic.IEnumerable'

на этой линии

System.IO.File.WriteAllLines(@"C:\temp\WriteLines.txt", firstValue); 

ответ

10

File.WriteAllLines принимает последовательности строк - вы только получили единственной строки.

Если вы хотите только ваш файл содержит что одну строку, просто используйте File.WriteAllText:

File.WriteAllText(@"C:\temp\WriteLines.txt", firstValue); 

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

Если вы пытаетесь получить первую часть каждой линии вашего входного файла в выходной файл, вы бы лучше с:

var query = File.ReadLines(inputFile) 
       .Select(line => line.Split(new string[] { " " }, 
              StringSplitOptions.RemoveEmptyEntries)[0]); 
File.WriteAllLines(outputFile, query); 

Обратите внимание, что с using директива

using System.IO; 

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

+0

ошибки не найдены, но ничего не найдено в текстовом файле – user1477332

+0

@ user1477332: У вас есть что-нибудь в вашем * файле ввода *? (См. Мое редактирование, тоже ...) –

+0

спасибо, это было именно то, что мне нужно :) – user1477332

Смежные вопросы