내가 목록 < 내부에 행에서 3 개 필드를 검색 할> 순간에 나는이 잘 작동이람다 표현식
FOS1 = (from res in sortedSearchResults
where Convert.ToInt32(res.tID) == tID
select res.FOS1).First();
FOS2 = (from res in sortedSearchResults
where Convert.ToInt32(res.tID) == tID
select res.FOS2).First();
FOS3 = (from res in sortedSearchResults
where Convert.ToInt32(res.tID) == tID
select res.FOS3).First();
처럼 그 일을하고 값, 그러나 나는 대신 할 3 문장, 난 단 1,하지만 난 아주 람다 표현식에 익숙하지 않다.
나는 다음과 같은 시도 : -var name = sortedSearchResults.Where(i => Convert.ToInt32(i.tID) == tID)
.Select(i => new { FOS1 = i.FOS1, FOS2 = i.FOS2, FOS3 = i.FOS3 });
하지만 그들 값이있을 가정 할 때 FOS1, FOS2 및 FOS3은 항상 비어 있습니다. 누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?
"이름"유형을 읽는 방법, 즉 FOS1, FOS2 및 FOS3 회원이 비어 있는지 확인하는 방법을 보여주는 코드를 추가 할 수 있습니까? 또한, 원래 res.tID = tID에 대한 여러 결과 중 첫 번째 만 사용한다는 것을 알았습니까? –
나는 3 개의 변수 대신 i를 선택하고 name.PrimaryKey와 name.FOS1, name.FOS2 및 name.FOS3을 작성하여 그 내용을 확인합니다. 새로운 객체를 정의 할 필요가없는 것처럼 보입니다. – Narnian
이 Christian.K에 동의하면'name'은 익명 형식의 IEnumerable입니다. 첫 번째 행뿐만 아니라 우리가 볼 수있는 코드가 올바르게 보입니다. – Jodrell