2012-05-10 2 views
1

와 첨부 파일이 밖으로 필터링하고 난 첨부 파일 일반적인 파일 정보의 목록을 가지고있다.LINQ, 내가 속성과 값</p> <p>와 매핑 의 목록 매핑

내가하고 싶은 것은 첨부 파일을 검색하고 파일 이름이 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;} 
} 

와 내가 Linq에 잘못 생각, 그래서 내가 목록

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

하지만 난 어떤 결과를 얻을 해달라고에서 결과를해야합니다, 마스터 experise와 누구?

+1

시도'mappings.Any' 대신 mappings.All' – Rawling

+2

'의'.All'는 모든 파일을 의미합니다 _all_ 확장자를 포함해야합니다. 대신 Any를 시도하십시오. – phg

답변

2

이 시도 :

var filterdFiles = files 
        .Where(x=> 
          mappings.Any(m=>x.filename.contains(m.Value))) 
1

을 나는 이것이 당신이 원하는 생각 :

var filterdFiles = files.Where(x => mappings.Where(m => m.Property == "Filter") 
              .Any(m => x.filename.Contains(m.Value))); 
+0

나는 이것을 시도 할 것이다 =), thanks – Martea

+0

그것은 내 문제를 고민했다. – Martea