我有2个列表,一个是文件名列表,第二个是文件名存根列表,我想从第一个列表中选择文件名就像文件名存根一样。
List<string> files = new List<string>() {"a.txt", "b.txt", "c.txt"};
List<string> fileStub = new List<string>() {"a", "b", "c"};
查询将返回第一个列表中的所有记录。
提前致谢。
答案 0 :(得分:13)
var results = files.Where(x => fileStub.Any(y => x.Contains(y))).ToList();
答案 1 :(得分:4)
如果订单很重要(当然,对于此示例,如果您不希望IndexOutOfRange例外,则两个列表的大小很重要)
var res = files.Where((file, index) => file.Contains(fileStub[index]));
如果你不介意订单(比列表大小不重要)
var res = files.Where(file => fileStub.Any(fs => file.Contains(fs)));
答案 2 :(得分:2)
var result = files.Where(item => fileStub.Any(stub => item.Contains(stub))).ToList();
答案 3 :(得分:1)