作为标题,我有一个类似于 Excel 的对象模型List<string> keywords;
。Workbook
我想获取WorkbookCell
与列表中的关键字匹配的所有内容。
我在想也许并行搜索是个好主意:
//Loop through all the Worksheets in parallel
Parallel.ForEach(Workbook.Worksheets, (ws, st) =>
{
if (!st.ShouldExitCurrentIteration)
{
//Loop through all the rows in parallel
Parallel.ForEach(ws.Rows, (wr, tk) =>
{
if (!tk.ShouldExitCurrentIteration)
{
//Loop through all the columns in parallel
Parallel.ForEach(wr.Cells, (cell, ctk) =>
{
if (cell.Value != null)
{
var cellValue = cell.Value.ToString();
//Block keyword found, add the occurance
var matchedKeyword = IsKeywordMatched(cellValue);
if (matchedKeyword != null)
{
matchedKeyword.AddMatchedCell(cell);
}
}
});
}
});
}
});
实际上这会不会太平行了?如果您有更好的想法,请告诉我。
** 在正常情况下,我的工作表少于 20 个,但每个工作表将包含超过 10000 行和数百列。