LINQ에서 다른 함수의 반환 값을 제공하는 방법.다른 함수의 반환 값을 얻는 방법?
저는 IEnumerable
이 objects(Say ObjColl)
입니다. 해당 개체 컬렉션에서 다른 function(say GetObjPropertyValue)
의 반환 값을 기준으로 개체를 필터링해야합니다. 최종 출력물은 Dictionary of object와 그 propertyValue 여야합니다. 이 딕셔너리는 propertyvalue가 아무 것도없는 객체를 가져서는 안됩니다.
GetObjPropertyValue
함수는 Object를 입력으로 사용하고 해당 속성을 string으로 반환합니다. 그러나 그 속성이 객체에 존재하지 않는다면 아무 것도 반환하지 않는다.
내 쿼리는
Dictionary(obj, string)=ObjColl.Where(Function(p) not GetObjPropertyValue(p) is nothing)
같은 것입니다하지만 위의 질의에 나는 GetObjPropertyValue (P)의 반환 값을 저장하고 사전에 OBJ-p와 ReturnValue를 조합을 추가하는 코드를 작성해야한다. 어떻게 쓰는거야 ??
코드 아래의 예를 참조하십시오 : 는코드 아래 마지막 줄은 잘못된 것입니다. 그러나 그것을 수정하는 방법을 제안 해주십시오. 제 의도는 GetFruitColor가 아무것도 아닌 모든 과일 (빈 또는 유효한 문자열 일 수 있음)에 대해 각 과일 이름과 해당 색상 (다른 함수 호출에서 반환)의 출력 컬렉션 (사전 말하기)을 원합니다.
[코드] 개인 기능 GetFruitColor (과일) 문자열로 '과일 색을 반환합니다. '유효한 과일 및 색상을 사용할 수없는 경우 ""(빈 문자열)을 반환합니다. '과일이 유효하지 않은 경우 과일은 아무 것도 반환하지 않습니다. 위의 코드에서 종료 기능
private sub MyMethod()
Create a list of strings.
Dim fruits As New List(Of String)(New String() _
{"apple", "passionfruit", "banana", "mango", _
"orange", "blueberry", "grape", "strawberry"})
Dim query = _fruits.Where(Function(fruit) k= GetFruitColor(fruit) if not k is nothing select fruit, k)
End Sub
는 마지막 행은 잘못된 것입니다. 그래서 k
에 getFruitColor를 넣는 방법, k
값을 저장하고 그것을 과일의 사전으로 출력하고 k
값을 얻는 방법. 이 것 C#에서 사전
만들기
- (과일, 색상)
- 필터 밖으로 구성된 익명의 형식으로 프로젝트 "아무것도"색상
- :
우수 답변 Jon Skeet. 그것은 나에게 정확한 해결책을 제공합니다. 도와 주셔서 정말로 고맙습니다. – kothasiva