2017-01-21 1 views
1

해당 인덱스의 특정 항목에 조건이 만족되면 true 또는 false의 목록을 반환해야하는 LINQ 쿼리가 있습니다.목록을 반환 할 LINQ 쿼리 <bool>

dataList = {100, 40, 10, 200}; 
var res = dataList.Select((item, index) => new { item, index }).Any(x => x.item > 50).ToList(); 

위의 방법에서 문제는 끝에 ToList()를 추가 할 수 없습니다. 그리고 그것 없이는 true 나 false 만 반환됩니다. 나는 bool리스트를 원합니다.

예상 출력 - {, 허위 사실, 거짓, 진실}

+0

dataList typeof? –

+0

@PranavPatel 정수 목록 dataList = 새 목록 {100, 40, 10, 200}; –

+0

'Any (x => x.item> 50)'은'bool'을 반환합니다. 'bool'을 캐스팅 할 수 없습니다. –

답변

5

은 당신의 접근 방식에서 불필요한 코드를 많이 있습니다. 그냥 다음 정수 배열을 일치하는 논리 값의 목록을 원하는 경우 선택에 의해 열거 된 순서대로 현재 요소가보다 큰 50

경우
인덱스를 가져 선택의 과부하는 단지 시험에 필요하지 않습니다 그냥

int[] dataList = { 100, 40, 10, 200}; 
var res = dataList.Select(item => item > 50).ToList(); 

foreach(bool b in res) 
    Console.WriteLine(b); 

마지막으로 Any 호출이 잘못되었습니다. 목록의 요소가 조건을 충족시키고 열거를 중지하면 true 또는 false를 반환합니다. ToList()로 meterialize 할 수있는 IEnumerable을 반환하지 않습니다.