Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LINQ (Language-Integrated Query) > поиск текста в наборе файлов


Автор: gambit 6.8.2010, 09:28
Доброго времени суток.
Имеется List<FileProperty>, FileProperty который содержит нужную мне инфу о файле. Одно из полей этого класса, это имя файла с полным путем. Это все для другой задачи необходимо, просто задание расширили.

Теперь, мне передается подстрока, и надо вернуть все строки из каждого файла коллекции, которые содержат эту подстроку. И сделать это надо на linq. Подскажите пож. как?

Автор: mrbrooks 6.8.2010, 13:26
Если уже коллекция файлов есть, то можно так:

Код

string pattern = "подстрока";
List<FileProperty>list = /*твоя коллекция*/;
List<string>res = new List<string>();

list.ForEach(arg=>res.AddRange( from item in File.ReadAllLines(arg.FileName)
                                                     where item.IndexOf(pattern) =! -1
                                                     select item));


Автор: gambit 6.8.2010, 16:27
помогла только такая конструкция
Код

            var res = from file in _files.AsParallel()
                      let filename = file.NameFile
                      let fstrings = File.ReadAllLines(filename)
                      from str in fstrings
                        where str.Contains(_patternString)
                        select new FindText(file.NameFile, str);

_files коллекция файлов
NameFile - свойство в котором хранится полный путь к файлу

вопрос решен

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)