You can use the WinListItem.Selected() method. The string, typically, is the name property in Coded UI list items.
WinWindow form1 = new WinWindow();
form1.SearchProperties[WinWindow.PropertyNames.Name] = "Form1";
WinList list = new WinList(form1);
list.SearchProperties[WinList.PropertyNames.Name] = "listBox1";
WinListItem listItem = new WinListItem(list);
listItem.SearchProperties[WinListItem.PropertyNames.Name] = "2 -WinListItem with special characters !@%";
listItem.SearchConfigurations.Add(SearchConfiguration.ExpandWhileSearching);
listItem.Select();