2016-06-05 3 views
-2

의 내가이 객체가 있다고 가정 해 봅시다.LINQ로 개체 속성을 검색하는 방법은 무엇입니까? <pre><code>public class Foo { public string FirstProp {get;set;} public string SecondProp {get;set;} public string ThirdProp {get;set;} } </code></pre> <p>지금 내가 좋아하는 것</p> 해당 개체에서 단지 FirstProp과 SecondProp를 검색 한 문자열로 모든 속성 값을 CONCAT하기 :

나는 깨끗한 것이 아닙니다. 마음에 하나의 해결책이 있습니다. 여기에 있습니다 :

var foo = new Foo("test1","test2","test3"); 
var propertyNames = new[] {"FirstProp", "SecondProp"}; 
var properties = foo.GetType().GetProperties().Where(x => propertyNames.Contains(x.Name)); 
//Then loop through each retrieved property and concat the string 

그래서 기본적으로 나는 문자열 배열에 의존하지 않는 깨끗한 솔루션을 찾고 있습니다.

+1

나는 downvotes가 약간 방아쇠를 당겼다 고 생각한다. 어쨌든 어쩌면 의사 코드에 포함 된 결과를 통해 어떤 유형의 결과를 찾고 있는지 더 분명하게 나타낼 수 있습니다. – stackuser83

답변

0
var foo = new Foo(...); 
var result = string.Join(",", new[]{ foo.FirstProp, foo.SecondProp }); 

충분합니까? 아니면 동적 타이핑을위한 리플렉션이 필요합니까? 그렇다면 MemberExpressions에 동적으로 값을 제공 할 수도 있습니다. 인스턴스 컬렉션을 다루고 있습니까? 필요한 속성에 대한 매개 변수가있는 도우미 메서드에서이 기능을 추출해야합니까?

+0

이것은 당신이 생각하는대로하지 않습니다. 이 값은 변수 자체의 실제 이름이 아니라 변수가 포함하는 값입니다. –

+0

나는이 코드가 무엇을하는지 정확히 안다. 문제는 그것이 모호한 요구 사항과 일치하는지 여부이다. 나는 아직도 약간의 설명을 원하고있다. 그때까지 나의 대답은 그대로 서있다. –

+0

내 질문에 명확한 설명이없는 부분은 어디입니까? –

관련 문제

 관련 문제