我正在寻找 ac# Linq 解决方案。
给定一个字符串列表,让我们调用列表 S
"alan.foo", "bob.htm", "dave.tea", "other.yuy"
然后,也给定另一个字符串列表,我们称它为 X
".foo", ".htm", ".tea"
什么是 linq 表达式只返回 S 中以 X 中的字符串结尾的那些记录?
var result = S.Where(x=> X.Any(y=>x.EndsWith(y)));
如果你想忽略大小写:
var result = S.Where(x => X.Any(y => x.EndsWith(y, StringComparison.CurrentCultureIgnoreCase)));
尝试这个;
List<string> S = new List<string>() { "alan.foo", "bob.htm", "dave.tea", "other.yuy" };
List<string> X = new List<string>() { ".foo", ".htm", ".tea" };
var newlist = S.Where(n => X.Any(s => n.EndsWith(s)));
foreach (var item in newlist)
{
Console.WriteLine(item);
}
输出将是;
alan.foo
bob.htm
dave.tea
这里有一个DEMO。
尝试这样的事情。
var list1 = new List<string> { "alan.foo", "bob.htm", "dave.tea", "other.yuy" };
var list2 = new List<string> { ".foo", "htm", ".adf" };
List<string> list3 = (from n in list1
from l in list2
where n.EndsWith(l)
select n).ToList();
希望能帮助到你。