使用C#。我有一个名为 InputList 的列表。从这个列表中我必须搜索一些字符串。搜索后我要选择搜索参数之间的所有项目。详细描述
文字输入文件
收藏:
在阅读 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 :(得分: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();
此处betweenLines
是List
个List
的{{1}}个,其中每个列表位于包含字符串“Loading”(包括字符串)的DataRow
之间)和包含字符串“FULL”(不包括)的下一个“DataRow”。