假设我有一个字符串列表:
originalList = { "XX.one", "XX.two", "YY.three" }
我想使用linq选择并返回带有{"one", "two"}
的列表。
例如,我这样做
resultList = originalList.FindAll(o => o.StartsWith("XX")));
我将得到resultList = { "XX.one", "XX.two" }
,但我想要的是resultList = { "one", "two" }
有什么办法解决这个问题?
编辑:感谢所有回答,我选择了@ er-mfahhgk的split函数,因为它执行的操作最少,并且不取决于前缀的大小。
答案 0 :(得分:3)
您可以使用SelectWith
所需的字符串,然后在点(Split
)上使用.
功能,可以选择第二部分,例如
var resultList = originalList.Where(o => o.StartsWith("XX"))
.Select(x => x.Split('.')[1])
.ToList();
最后您的输出将是
foreach (var item in resultList)
{
Console.WriteLine(item);
}
Console.ReadLine();
输出:
答案 1 :(得分:2)
result = originalList.Where(o => o.StartsWith("XX"))
.Select(x=>x.Replace("XX.,""))
.ToList();
答案 2 :(得分:1)
您可以尝试以下方法:
resultList = originalList.Where(o => o.StartsWith("XX"))
.Select(x=>x.Substring(3))
.ToList();
(已编辑以更正Substring的措词)