IDE0057 子串可以简化

问题描述 投票:0回答:1

我有以下几行代码:

string line = "<!--SomeValue=\"asdf\"-->";
int start = line.IndexOf("=\"") + 2;
return line.Substring(start, line.IndexOf("\"-->") - start);

这将返回 asdf。

我从代码分析中收到 IDE0057。我想有一个简单的方法可以简化:)。

编辑: 问题是如何简化上面的代码以删除收到的 IDE0057 消息。阅读该消息提供的文档,不清楚如何修复它。

c# .net roslyn
1个回答
10
投票

天哪,我为什么不知道灯泡。谢谢@Heretic Monkey。

string line = "<!--SomeValue=\"asdf\"-->";
int start = line.IndexOf("=\"") + 2;
return line[start..line.IndexOf("\"-->")];

在 C# 8 中引入了字符串范围运算符。 IDE0057 表示可以通过使用范围运算符来简化子字符串方法。上面的代码使用字符串范围运算符从所需的起始位置开始抓取,将中间的内容一直到所需的结束点。这将删除 IDE0057 消息。

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges

© www.soinside.com 2019 - 2024. All rights reserved.