LINQ и строки
Обновлен: Ноябрь 2007
LINQ можно использовать для запросов и преобразования строк и коллекций строк. Это может быть особенно полезно для частично структурированных данных в текстовых файлах. Запросы LINQ могут быть объединены с традиционными строковыми функциями и регулярными выражениями. Например, методы Split или Split можно использовать для создания массива строк, к которому, затем, можно выполнить запрос или изменить с помощью LINQ. Метод IsMatch можно применять в предложении where запроса LINQ. А также можно использовать LINQ для запроса или изменения результатов MatchCollection, возвращенных регулярным выражением.
Для преобразования частично структурированных текстовых данных в XML можно воспользоваться описанными в данном разделе методами. Дополнительные сведения см. в разделе Как создавать XML на основе CSV-файлов.
Примеры этого раздела распределены по двум категориям.
Запрос блока текста
Можно запрашивать, анализировать и изменять блоки текста, разделяя их на запрашиваемые массивы меньших строк с помощью метода Split или метода Split. Исходный текст можно разбить на слова, фразы, абзацы, страницы или любые другие единицы, а затем выполнить дополнительные разбиения, если они требуются в запросе.
Практическое руководство. Подсчет вхождений слова в строке (LINQ)
Демонстрируется использование LINQ для простых запросов текста.Практическое руководство. Запрос к предложениям, содержащим указанный набор слов (LINQ)
Представлено разделение текстовых файлов на произвольные части и выполнение запросов к каждой из них.Практическое руководство. Запрос знаков в строке (LINQ)
Демонстрируется, что строка является запрашиваемым типом.Практическое руководство. Объединение запросов LINQ с регулярными выражениями
Демонстрируется использование регулярных выражений в запросах LINQ для соответствия сложному шаблону в отфильтрованных результатах запроса.
Запросы к частично структурированным данным в текстовом формате
Многие различные типы текстовых файлов состоит из ряда строк, часто имеющих схожее форматирование, например файлы с разделительными знаками табуляции или запятыми или строки фиксированной длины. После считывания такого текстового файла в память можно использовать LINQ для запросов и/или изменения строк. Запросы LINQ упрощают задачу объединения данных из нескольких источников.
Практическое руководство. Нахождение разности наборов между двумя списками (LINQ to SQL)
Содержит сведения о поиске всех строк, присутствующих в одном списке, но отсутствующих в другом.Практическое руководство. Сортировка или фильтрация текстовых данных по любому слову или полю (LINQ)
Содержит сведения о сортировке строк текста на основе любого слова или поля.Практическое руководство. Изменение порядка полей файла с разделителями (LINQ)
Содержит описание изменения порядка полей в строке CSV-файла.Практическое руководство. Объединение и сравнение коллекций строк (LINQ)
Содержит сведения об объединении списков строк различными способами.Практическое руководство. Заполнение коллекций объектов из нескольких источников
Содержит сведения о создании коллекций объектов с помощью нескольких текстовых файлов в качестве источников данных.Практическое руководство. Объединение содержимого из файлов разных форматов (LINQ)
Содержит описание объединения строк из двух списков в одну строку с помощью совпадающего ключа.Практическое руководство. Разделение файла на несколько файлов с помощью групп (LINQ)
Содержит сведения о создании новых файлов с помощью одного файла в качестве источника данных.Практическое руководство. Вычисление значения столбцов в текстовом файле в формате CSV (LINQ)
Содержит описание выполнения математических вычислений с текстовыми данными в CSV-файлах.
См. также
Задачи
Как создавать XML на основе CSV-файлов