1

我正在寻找 ac# Linq 解决方案。

给定一个字符串列表,让我们调用列表 S

"alan.foo", "bob.htm", "dave.tea", "other.yuy"

然后,也给定另一个字符串列表,我们称它为 X

".foo", ".htm",  ".tea"

什么是 linq 表达式只返回 S 中以 X 中的字符串结尾的那些记录?

4

3 回答 3

6
var result = S.Where(x=> X.Any(y=>x.EndsWith(y)));

如果你想忽略大小写:

var result = S.Where(x => X.Any(y => x.EndsWith(y, StringComparison.CurrentCultureIgnoreCase)));
于 2013-08-02T10:12:40.803 回答
1

尝试这个;

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

于 2013-08-02T10:15:21.787 回答
0

尝试这样的事情。

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();

希望能帮助到你。

于 2013-08-02T10:27:29.550 回答