我有以下模式的字符串列表:“name \ middleName”。 什么是最好的方式变成一个列表,其中所有元素只是“名称”? (即拆分字符串并只留下“名称”部分)
谢谢, 李
答案 0 :(得分:5)
List<string> originalList = ...
List<string> newList = originalList.Select(s => s.Split('\\')[0]).ToList()
答案 1 :(得分:4)
List<string> original = ...
List<string> nameOnly = original.ConvertAll(s => s.Substring(0, s.IndexOf('\\')));
如果原始列表的某些元素中可能没有\
个字符,那么您需要额外检查以避免例外:
List<string> nameOnly = original.ConvertAll(s => {
int i = s.IndexOf('\\');
return (i == -1)
? s
: s.Substring(0, i);
});
答案 2 :(得分:0)
//your list of strings in format (name\middleName)
List<string> list;
List<string> newList;
foreach(string item in list)
newList.Add(item.Substring(0, item.IndexOf("\\")));
这样就可以将你的字符串列表复制成一个新的格式,就像你想要的那样。
答案 3 :(得分:0)
Tokenize“/”并将第一个字符串指定给name变量。 或者只是在列表中循环所有这些字符串并在循环内部对字符串长度执行循环,将字符放入变量并在到达“/”时退出,然后将其存储为名称。
答案 4 :(得分:0)
这是一个不会创建新列表的正则表达式解决方案。
for(int i = 0; i < list.count; i++)
{
list[i] = Regex.Match(List[i],@"^\w+").value
}