С# docx находит слово в таблице

У меня есть текстовый документ с огромной таблицей из двух столбцов, первый столбец содержит код, а второй содержит слово. Во многих строках повторяется слово второго столбца, поэтому мне нужно найти все строки с повторяющимися словами. Я использую метод findAll() и получаю индекс для каждого вхождения слова, но я не могу получить строку таблицы из этого индекса. Ниже приведен код, который я использую.

using (DocX doc = DocX.Load(path/to/file.docx)){
   Table table = doc.Tables[0];
   var ocurrences = doc.FindAll("text", RegexOptions.IgnoreCase);
}

person REDMAN    schedule 29.05.2018    source источник
comment
Следует ли вызывать FindAll для таблицы, а не для документа?   -  person PepitoSh    schedule 29.05.2018
comment
@PepitoSh у объекта таблицы нет метода findAll   -  person REDMAN    schedule 29.05.2018


Ответы (1)


Вы можете использовать LinQ для получения повторяющихся строк как:

var repetitive = doc.Tables.GroupBy(s => s.Word).SelectMany(grp => grp.Skip(1));

Примечание: здесь Word — второй столбец.

person iamdkrz    schedule 29.05.2018
comment
Спасибо за вашу помощь, но я не могу найти способ программно выбрать нужный столбец (s.Word - второй столбец в таблице), не могли бы вы мне помочь? - person REDMAN; 29.05.2018
comment
Если вам нужен КОД повторяющихся слов, то var repetitive = doc.Tables.GroupBy(s => s.Word).SelectMany(grp => grp.Skip(1)).Select(a=›a.Code); - person iamdkrz; 29.05.2018