我有这样的结构:
FileStream fs = new FileStream(fileName, FileMode.Open);
StreamReader sr = new StreamReader(fs);
while (!sr.EndOfStream)
{
string line=sr.ReadLine();
fullTextLines.Add(line);
}
和一些文字:
string txt = "begin
middle
i am a string
i am a string end"
我想获得包含“我是”的最后一行索引。例如:我必须得到3但是当我使用Console.WriteLine(fullTextLines.LastIndexOf("GRID"));
时我得到-1。
答案 0 :(得分:6)
fullTextLines.FindLastIndex(x => x.Contains("i am"));
答案 1 :(得分:4)
var result = File.ReadLines(fileName)
.Select((s,i) => new { Line = s, Index = i })
.LastOrDefault(x => x.Line.Contains("i am"));
int index = result == null ? -1 : result.Index;
答案 2 :(得分:1)
var lastIAmIndex = fullTextLines.Select((s,i) => new { s, i })
.Where(e => e.s.Contains("i am"))
.Select(e => e.i)
.OrderByDescending(i => i)
.FirstOrDefault()