C# 如何拆分窗口标题?

C# 如何拆分窗口标题?,c#,string,winforms,split,title,C#,String,Winforms,Split,Title,我目前正在制作一个程序,它将列出某个应用程序打开的所有窗口。这个应用程序叫做“胫骨”,它是一个游戏。当您登录到角色时,窗口标题将更改为“胫骨-玩家名称” 假设我打开了3个窗口并登录到它们。然后打开以下窗口: Tibia - Player 1 Tibia - Player 2 Tibia - Player 3 我怎样才能把它们分开,只得到游戏时间? 这是我用来获取它们并将它们添加到我的组合框中的代码 charList.Items.Clear(); foreach

我目前正在制作一个程序,它将列出某个应用程序打开的所有窗口。这个应用程序叫做“胫骨”,它是一个游戏。当您登录到角色时,窗口标题将更改为“胫骨-玩家名称”

假设我打开了3个窗口并登录到它们。然后打开以下窗口:

Tibia - Player 1
Tibia - Player 2
Tibia - Player 3
我怎样才能把它们分开,只得到游戏时间? 这是我用来获取它们并将它们添加到我的组合框中的代码

        charList.Items.Clear();
        foreach (Process p in Process.GetProcessesByName("Tibia"))
        {
            if (!charList.Items.Contains(p.MainWindowTitle))
            {
                charList.Items.Add(p.MainWindowTitle);
            }
        }
        charList.SelectedIndex = 0;
我试图通过以下方式拆分“MainWindowTitle”:

charList.Items.Add(p.MainWindowTitle).Split('-');
但后来它显示为 组合框中所有项目的
System.String[]

我希望组合框中充满以下内容:

Player 1
Player 2
Player 3
而不是

Tibia - Player 1
Tibia - Player 2
Tibia - Player 3

split返回一个数组,其中包含字符串被拆分成的不同组。使用访问播放器名称

charList.Items[1]
您可能还希望修剪字符串以删除多余的空格

charList.Items[1].Trim()

-
之后阅读:

charList.Items.Add(
    p.MainWindowTitle.Substring(p.MainWindowTitle.IndexOf("-") + 2));

只使用子字符串会比使用拆分更简单吗

charList.Items.AddRange(Process.GetProcessesByName("Tibia").ToList()
                        .Distinct().ToList() // Distinct eliminates charlist lookup
                        .ConvertAll<string>(c =>
                        {
                            int dashloc = c.MainWindowTitle.IndexOf("-")
                            return (dashloc > -1)
                                ? c.MainWindowTitle.Substring(dashloc+1).Trim()
                                : c.MainWindowTitle;
                        }));
charList.Items.AddRange(Process.getProcessByName(“胫骨”).ToList()
.Distinct().ToList()//Distinct消除了字符列表查找
.ConvertAll(c=>
{
int dashloc=c.MainWindowTitle.IndexOf(“-”)
返回(dashloc>-1)
?c.MainWindowTitle.子字符串(dashloc+1).修剪()
:c.标题;
}));

当我尝试这样做时,我没有.Trim()选项解决了它!先生,你是上帝!非常感谢你!以前从未听说过
子字符串
,现在我将进一步研究它,这对我有很多帮助。非常感谢。这也是一个聪明的方法,我没有想到这一点!非常感谢。
charList.Items.AddRange(Process.GetProcessesByName("Tibia").ToList()
                        .Distinct().ToList() // Distinct eliminates charlist lookup
                        .ConvertAll<string>(c =>
                        {
                            int dashloc = c.MainWindowTitle.IndexOf("-")
                            return (dashloc > -1)
                                ? c.MainWindowTitle.Substring(dashloc+1).Trim()
                                : c.MainWindowTitle;
                        }));