如何从C#中的列表中获取以X开头的字符串的最后一个索引?

如何从C#中的列表中获取以X开头的字符串的最后一个索引?,c#,C#,因此,我制作了一个包含html文档中的行的列表,并尝试获取最后一个CSS引用的索引(在它之后附加一个新引用)。以下代码不适用于我 string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this. LineList = File.ReadAllLines(file).ToList(); int index = LineList.LastIndexOf(prefix)

因此,我制作了一个包含html文档中的行的列表,并尝试获取最后一个CSS引用的索引(在它之后附加一个新引用)。以下代码不适用于我

string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this.

LineList = File.ReadAllLines(file).ToList();

int index = LineList.LastIndexOf(prefix);

string prefix=“您可以像这样使用
LINQ
和字符串方法
StartsWith

string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this.

List<string> LineList = File.ReadAllLines(file).ToList();
int index = LineList.Select((n, i) => new { Value = n, Index = i })
    .LastOrDefault(x => x.Value.StartsWith(prefix))
    .Index;

string prefix=“您可以像这样使用
LINQ
和字符串方法
StartsWith

string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this.

List<string> LineList = File.ReadAllLines(file).ToList();
int index = LineList.Select((n, i) => new { Value = n, Index = i })
    .LastOrDefault(x => x.Value.StartsWith(prefix))
    .Index;

string prefix=“好吧,只需在lines枚举中向后迭代,直到达到满足条件的第一个:

for (var i = lineList.Count -1 ; i != 0; i--)
{
    if (lineList[i].StartsWith("<link rel=\"stylesheet\"")
    {
        return i;
    }
}

return -1;
for(var i=lineList.Count-1;i!=0;i--)
{

如果(lineList[i].StartsWith(“那么,只需在lines枚举中向后迭代,直到达到第一个满足条件的枚举:

for (var i = lineList.Count -1 ; i != 0; i--)
{
    if (lineList[i].StartsWith("<link rel=\"stylesheet\"")
    {
        return i;
    }
}

return -1;
for(var i=lineList.Count-1;i!=0;i--)
{

if(lineList[i].StartsWith(“查询列表以获取项目:

var item = LineList.Where(x => x.StartsWith(prefix)).LastOrDefault();
然后使用该项获取索引:

int index = -1;
if (item != null)
    index = LineList.IndexOf(item);

查询列表以获取项目:

var item = LineList.Where(x => x.StartsWith(prefix)).LastOrDefault();
然后使用该项获取索引:

int index = -1;
if (item != null)
    index = LineList.IndexOf(item);
您可以使用LINQ:

string prefix=“您可以使用LINQ:


string prefix=“如您所说,您希望找到以开头的最后一行,并且正在搜索与您的
前缀
相等的行

要解决此问题,我建议使用以下代码:

string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this.
LineList = File.ReadAllLines(file).ToList();
int index = LineList.Select( (line, index) => new { text = line, idx = index }).LastOrDefault( a => a.line.StartsWith(prefix).idx;

正如您所说,您希望查找以开头的最后一行,并且正在搜索与您的
前缀
相等的行

要解决此问题,我建议使用以下代码:

string prefix = "<link rel=\"stylesheet\""; //goal is to find last line that starts with this.
LineList = File.ReadAllLines(file).ToList();
int index = LineList.Select( (line, index) => new { text = line, idx = index }).LastOrDefault( a => a.line.StartsWith(prefix).idx;

你是想在字符串中查找索引,还是在列表中查找索引?目前还不清楚。你真的需要索引,还是只需要行本身?这些问题的答案将影响你应该做什么。(要查找最后一行索引,我可能只使用
for
循环。对于其他任何事情,我都会使用LINQ。)@尼科里夫:那甚至不会编译。字符串文字不是问题所在。你是想在字符串中找到索引,还是在列表中找到索引?目前还不清楚。你真的需要索引,还是只需要行本身?这些问题的答案会影响你应该做什么。(为了找到最后一行索引,我可能只会对
循环使用
。对于其他任何东西,我都会使用LINQ。)@NicoRiff:这甚至不会编译。这里的问题不是字符串文本。