C# IEnumerable<;字符串>;foreach返回结果中的所有页面;foreach而不是for循环

C# IEnumerable<;字符串>;foreach返回结果中的所有页面;foreach而不是for循环,c#,foreach,ienumerable,C#,Foreach,Ienumerable,我想返回3页的字符串输出,但程序输出1页3次。我已经意识到“for-loop”实现是可行的,但我想使用foreach namespace Itext5 { class Program { static void Main(string[] args) { // PdfReader reader = new PdfReader(@"D:\500indycar-race-results.pdf"); Pd

我想返回3页的字符串输出,但程序输出1页3次。我已经意识到“for-loop”实现是可行的,但我想使用foreach

namespace Itext5
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfReader reader = new PdfReader(@"D:\500indycar-race-results.pdf");
            PdfReader reader = new PdfReader(@"D:\191.pdf");                       
            IEnumerable<string> GetColumnText(float llx, float lly, float urx, float ury)

            {
                int get_PageNum = reader.NumberOfPages;
                var rect = new iTextSharp.text.Rectangle(llx, lly, urx, ury);
                var renderFilter = new RenderFilter[1];
                renderFilter[0] = new RegionTextRenderFilter(rect);
                var textExtractionStrategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), renderFilter);

                for (int pagecount = 1; pagecount <= get_PageNum; pagecount++)
                {
                    var text = PdfTextExtractor.GetTextFromPage(reader, pagecount, textExtractionStrategy);
                    yield return text;
                }
            }

            foreach (string result in GetColumnText(0, 0, 500, 500000))
            {
                Console.Write("{0} ", result);
                Console.ReadLine();
            }

        }
    }
}
命名空间Itext5
{
班级计划
{
静态void Main(字符串[]参数)
{
//PdfReader reader=新PdfReader(@“D:\500indycar race results.pdf”);
PdfReader reader=新的PdfReader(@“D:\191.pdf”);
IEnumerable GetColumnText(浮点llx、浮点lly、浮点urx、浮点ury)
{
int get_PageNum=reader.NumberOfPages;
var rect=new iTextSharp.text.Rectangle(llx,lly,urx,ury);
var renderFilter=新的renderFilter[1];
renderFilter[0]=新区域ExtranderFilter(rect);
var textExtractionStrategy=new FilteredTextExtrenderListener(新位置textExtractionStrategy(),renderFilter);
对于(int pagecount=1;pagecount
,使用iTextSharp.text.pdf;
使用iTextSharp.text.pdf.parser;
使用制度;
使用System.Collections.Generic;
使用System.IO;
命名空间Itext5
{
班级计划
{
静态void Main(字符串[]参数)
{
PdfReader reader=新的PdfReader(@“D:\191.pdf”);
IEnumerable GetColumnText(浮点llx、浮点lly、浮点urx、浮点ury)
{
int get_PageNum=reader.NumberOfPages;

对于(int pagecount=1;pagecount)那么问题是什么?只需构建一个字符串,然后打印它,即移动控制台。在循环之外进行写入否。我可以使用字符串,但我有3页pdf文档。a希望输出所有页面,而不是1页3或2次。这意味着什么?我想你的意思是,
var text=pdftextractor.GetTextFromPage(读卡器,获取页面号,文本提取策略)
您一直将
text
设置为相同的内容。如何更改取决于
pdftextractor
是什么,以及您希望它做什么,这还不清楚。我想您应该在
foreach中调用
GetColumnText
是的,谢谢。我只是在学习。这是合乎逻辑的。我需要重新检查cod这是一个答案还是你在试图编辑这个问题?两者都有!谢谢!我需要更加集中注意力,这怎么可能是一个答案和一个编辑?!你在这里没有什么意义?因为我不想偷坏的例子
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System;
using System.Collections.Generic;
using System.IO;

namespace Itext5
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfReader reader = new PdfReader(@"D:\191.pdf");
            IEnumerable<string> GetColumnText(float llx, float lly, float urx, float ury)

            {
                int get_PageNum = reader.NumberOfPages;

                for (int pagecount = 1; pagecount <= get_PageNum; pagecount++)
                {
                    var rect = new iTextSharp.text.Rectangle(llx, lly, urx, ury);
                    var renderFilter = new RenderFilter[1];
                    renderFilter[0] = new RegionTextRenderFilter(rect);
                    var textExtractionStrategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), renderFilter);
                    var text = PdfTextExtractor.GetTextFromPage(reader, pagecount, textExtractionStrategy);
                    yield return text;
                }
            }

            foreach (string result in GetColumnText(0, 0, 500, 500000))
            {
                Console.Write("{0} ", result);
                Console.ReadLine();
            }

        }
    }
}