0

我有这样的结构:

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。

4

3 回答 3

6
fullTextLines.FindLastIndex(x => x.Contains("i am"));
于 2013-03-12T09:33:04.090 回答
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;
于 2013-03-12T09:29:02.217 回答
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()
于 2013-03-12T09:26:57.227 回答