2013-11-14 1 views
1

목록을 검색하고 ID가 있는지 확인하려고합니다.우리에게 IList 시도. 람다 포함, 형식은 위임하지 않음

  string idText = item["FCSID"].Text; 
      var sfhOptions = PathologySFHByRole.GetSFHOptionsByRoles(Model.pathologyFishCultureStation); 
      if (!sfhOptions.Contains(x => x.ID == int.Parse(idText))) 
       e.Item.Cells[0].Visible = false; 

GetSFHOptionsByRoles는 IList를 반환합니다. 내 람다식이 오류를받습니다. 람다식이 대리자 형식이 아니기 때문에 람다 식을 SFHType으로 변환 할 수 없습니다

이 용도로 가장 적합한 방법은 무엇입니까?

+0

['Any'] (http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any (v = vs.110) .aspx) 대신'! sfhOptions.Any (x => x.ID == int.Parse (idText))' – valverij

답변

3

당신은 Any를 사용할 수 있습니다

int id = int.Parse(idText); 
e.Item.Cells[0].Visible = sfhOptions.Any(x => x.ID == id); 

IList<T>.Contains 유형 SFHType 대신 술어의 객체를 기대하고있다.

+0

어쩌면, 당신이 그것에있는 동안, 당신은 idText를 숫자로 먼저 변환하기를 원할 것입니다. 나는 델리게이트가 호출 될 때마다 파싱 될지 확신하지 못하지만, 그렇게 될 것이라고 상상할 수있다. – CompuChip