2011-03-14 35 views
0

在C#上工作。我有一个名为的列表InputList。从这个列表中我必须搜索一些string.After搜索后,我想选择搜索参数之间的所有项目.Bellow图片详细描述。如何在搜索参数之间获取项目

文本输入文件: enter image description here

收藏: enter image description here

阅读TEXTFILE我的数据存储在数据集在此之后,转换数据集作为收集。从这个集合,我想在搜索参数之间得到有效值。

我写波纹管的语法,但r3结果不能满足我。

var InputList = (from p in ds.Tables["InputFile"].Rows.Cast<DataRow>().ToArray() select p.ItemArray).ToList(); 

      var r3 = (from c in InputList 
         where c.Any(e => e.ToString().Contains("Loading")) 
         select c).ToList(); 

如有任何查询请求,请提前致谢。

+0

你得到了什么结果和你期望的是什么? – 2011-03-14 05:52:46

+0

语法给出了,希望你得到r3的输出结果。我已经描述了我想要的结果吗? – shamim 2011-03-14 06:19:42

+0

你在“搜索参数之间”是什么意思? – 2011-04-06 17:01:02

回答

0

为了得到查询之间的结果,SkipWhile()TakeWhile()都可以工作(两者都有可以给索引赋予谓词的变体),但我认为这并不完全符合您想要的图像。

var loadingIndexes = InputList.Select((r, i) => new { Row=row, Index=i }) 
           .Where(x => x.Row.Any(e => 
            e.ToString().Contains("Loading")) 
           .Select(x => x.Index); 
var betweenLines = loadingIndexes 
         .Select(i => InputList 
          .Skip(i) 
          .TakeWhile(r => !r.Any(e => 
                e.ToString().Contains("FULL"))) 
          .ToList()) 
         .ToList(); 

这里betweenLinesList S的DataRow s,其中每个列表是包含字符串“加载”(含)和下一个`的DataRow”包含字符串‘FULL’(不包括)一个DataRow之间的List

相关问题