2008-11-03 4 views
1

내 코드에 문제가 있거나 완전히 이해하지 못했습니다. 그들은 실버 라이트 컬렉션을 가지고 있지 않기 때문에, 내가 노력하고있어Silverlight 2의 LINQ 배열

 var members = from myList in o_data.Descendants(bp + "Reaction") 
          select new 
          { 
           participant = myList.Element(bp + "RIGHT").Attribute(rdf + "resource").Value, 
          }; 

     return members.ToArray(); // I this the right conversion (to store all attributed values to array)? 

: 두 개 이상의 RIGHT 속성을 포함하고 나중에 가져 오는에 대한 배열 내의 각을 저장할 수있는 쿼리를 실행 다음과 같은 코드가 있습니다 그냥 배열을 반환하는 ... 내가이 함수를 호출하면 :

FunctionName.GetValue (0) .ToString(); 그것은 반환 {참가자는 = # (ValueOfAttribute는)} 난 그냥 실제 값이 아닌 컬리 괄호 또는 "참가자에게를 ="반환 할

은 무슨 일이 을

일이야

?

답변

4

linq 쿼리에서 만들려는 익명 형식의 ToString 구현이 거기에 넣기 때문에 중괄호가 있습니다. 당신은 단지 '참가자'의 값을 반환하려면

public override string ToString() 
{ 
    StringBuilder builder = new StringBuilder(); 
    builder.Append("{ test = "); 
    builder.Append(this.<test>i__Field); 
    builder.Append(" }"); 
    return builder.ToString(); 
} 

이 모든 익명 형식의 물건을 제거하고 단지 그 값 선택 :

var members = from myList in o_data.Descendants(bp + "Reaction") 
    select myList.Element(bp + "RIGHT").Attribute(rdf + "resource").Value; 
return members.ToArray(); 
을 여기

는 익명 형식에서의 toString 구현입니다

마지막으로 요소 당 여러 값을 선택하려면 (샘플 코드에이 값을 의미하는 매달 기 쉼표가 있음) 명명 된 형식을 정의하고 쿼리에서 해당 형식의 인스턴스를 만듭니다. 그런 다음 배열은 객체 배열이 아닌 해당 유형의 인스턴스 배열이므로 쿼리 메서드 외부에서 유형의 속성을 참조 할 수 있습니다.

+0

추가 정보를 제공해 주셔서 감사합니다. – nightdev

관련 문제