C# 删除一个单词和后面的所有内容

C# 删除一个单词和后面的所有内容,c#,string,C#,String,假设我有一个字符串: "C:\Program Files (x86)\Steam\steam.exe /lets go 342131 some random text" 我想从这个字符串中删除'steam.exe'以及其后的所有内容。所以我修剪过的字符串看起来像: "C:\Program Files (x86)\Steam\" 我如何在C#中做到这一点?只需使用IndexOf和Substring方法: int index = str.IndexOf("steam.exe"); strin

假设我有一个字符串:

"C:\Program Files (x86)\Steam\steam.exe /lets go 342131 some random text"
我想从这个字符串中删除'steam.exe'以及其后的所有内容。所以我修剪过的字符串看起来像:

"C:\Program Files (x86)\Steam\"

我如何在C#中做到这一点?

只需使用
IndexOf
Substring
方法:

int index = str.IndexOf("steam.exe");  
string result = str.Substring(0, index);
编辑:以下是我的解释:

在我看来,字符串的拆分函数是获得所需结果的最简单的解决方案。因为您可以指定一个特定的字符在这个位置拆分字符串


您始终保持对流程的完全控制;)

如果要从字符串末尾删除某些内容,请使用:


它与
text.Substring(0,indexOfSteam)
相同。它只是让意图更加清晰。

使用
System.IO.Path

Path.GetDirectoryName(filepath)

它将返回“C:\Program Files(x86)\Steam”

这是消极选民心态的悲哀反映,Ehsan Sajjad给出的几乎相同的答案(在你发布此答案后)有3张赞成票,而你的有4张反对票。我认为这对OP和后续访问更有帮助,当你添加一些解释时。
int indexOfSteam = text.IndexOf("steam.exe");
if(indexOfSteam >= 0)
    text = text.Remove(indexOfSteam);
Path.GetDirectoryName(filepath)