我有一个映射列表 具有属性和值
我有一份附件清单 典型的文件信息。
我想做的是搜索附件并确保文件名包含 txt或xls格式。
public class Mapping
{
public int Id { get; set; }
public string Property { get; set; }
public string Value { get; set; }
}
public class file
{
public byte[] data {get;set;}
public string filename{get;set;}
}
我将在LIST中得到结果
var mappings = new List<Mapping>(){
new Mapping{Property="Filter", Value="txt"},
new Mapping{Property="Filter", Value="xls"}
};
var files = new List<file>();
var filterdFiles = files.Where(x=> mappings.All(m=>x.filename.contains(m.Value)))
但我没有得到任何结果所以我认为Linq是错的,任何有大师经验的人?
答案 0 :(得分:2)
试试这个:
var filterdFiles = files
.Where(x=>
mappings.Any(m=>x.filename.contains(m.Value)))
答案 1 :(得分:1)
我认为这就是你想要的:
var filterdFiles = files.Where(x => mappings.Where(m => m.Property == "Filter")
.Any(m => x.filename.Contains(m.Value)));