1

我有一个带有属性和值的映射列表

我有一个典型文件信息的附件列表。

我想做的是通过附件搜索并确保文件名包含 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;}
}

我将在列表中得到结果

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 是错误的,有高手经验的人吗?

4

2 回答 2

2

尝试这个:

var filterdFiles = files
                   .Where(x=> 
                          mappings.Any(m=>x.filename.contains(m.Value)))
于 2012-05-10T09:49:56.687 回答
1

我认为这就是你想要的:

var filterdFiles = files.Where(x => mappings.Where(m => m.Property == "Filter")
                                            .Any(m => x.filename.Contains(m.Value)));
于 2012-05-10T09:51:23.807 回答