在管道后移除所有东西

时间:2014-05-06 13:36:14

标签: c# asp.net

我试图删除管道后的所有内容,但我的代码目前正在做的是相反的,它正在删除管道之前的所有内容。我想删除管道后的所有内容,包括是否有空格。这是我试过的代码:

DropDownList WPC1 = DV_InputForm.FindControl("ddl_WPC") as DropDownList;
string WPC_Selected = WPC1.SelectedValue;
string WPC = WPC_Selected.Substring(WPC_Selected.LastIndexOf("|") + 1);

4 个答案:

答案 0 :(得分:4)

如果要从字符串中删除子字符串,则应使用String.Remove,这样可以提高可读性,因为您的意图更明确:

string WPC = WPC_Selected.Remove(WPC_Selected.LastIndexOf("|") + 1);

如果里面没有管道,则返回一个空字符串。如果你想在这种情况下使用完整的字符串,你必须先检查LastIndexOf("|") >= 0

答案 1 :(得分:1)

您必须从0索引开始,然后移至管道标志索引。

子串方法的

MSDN Reference

string WPC_Selected = "abc|def";
string WPC = WPC_Selected.Substring(0, WPC_Selected.LastIndexOf("|")); //abc
string WPC1 = WPC_Selected.Substring(0, WPC_Selected.LastIndexOf("|") + 1); //abc| 

答案 2 :(得分:1)

请尝试

DropDownList WPC1 = DV_InputForm.FindControl("ddl_WPC") as DropDownList;
string WPC_Selected = WPC1.SelectedValue;
string WPC = WPC_Selected.Split("|").Lenght>0?WPC_Selected.Split("|")[0].Trim():string.Empty;

答案 3 :(得分:0)

只需一行:

string WPC = WPC_Selected.Substring(WPC_Selected.IndexOf("|")+1, (WPC_Selected.Length - WPC_Selected.IndexOf("|")-1));