LINQ 3

LINQ 사용 시 동적으로 where 문을 작성하고 싶을 때

구글링을 열심히 한 결과, stackoverflow.com에서 답을 찾았네요. PredicateBuilder 클래스를 활용하라는 답이 가장 호응이 좋았는데요. 아래 O'Reilly에서 나온 C# 3.0 IN A NUTSHELL 사이트의 어떤 페이지로 이끌더군요. 원문은 그곳을 참조하시면 됩니다. Dynamically Composing Expression Predicates 자신의 프로젝트에 아래와 같이 PredicateBuilder 클래스를 추가하고, using System; using System.Linq; using System.Linq.Expressions; using System.Collections.Generic; public static class PredicateBuilder { public..

Silverlight/Tips 2009.11.17

Silverlight에서 XML을 읽는 두 가지 간단한 방법

개요 네이버 실버라이트 카페의 어느 회원분이 질문을 올리셨기에 한번 정리해 보았습니다. 이 포스트에서는 XML이 존재하는 경로에 따라 대응하는 두 가지 방법을 소개하겠습니다. 이 두 가지 방법이면 왠만한 상황에는 다 대체가 되실 것으로 생각합니다. (Cross Domain 정책에 의해 Blocking 되어있는 경우 제외. ^^;;) Case 1. xap파일에 포함시켜 배포하는 xml 파일을 읽는 경우 (xml 파일의 속성이 Content 등.) XDocument.Load(...)를 적극 활용합니다. Case 2. 외부에 존재하는 xml 파일을 읽는 경우 WebClient.DownloadStringAsync를 통해 xml파일의 내용을 string으로 받아온 후, XDocument.Parse(...)를 적극..

Silverlight/Lecture 2008.09.10

Namespace와 LINQ to XML

string xml에 위의 내용이 들어있다고 가정하고, XDocument xDoc = XDocument.Parse(xml); 위와 같이 xDoc을 준비해 놓고, XML데이터에서 Style을 돌면서 x:Key의 Value값만 쏙쏙 뽑아내는 LINQ구문을 작성한다면 어떻게 하시겠습니까? 오답 첨엔 막연히 이렇게 해봤습니다. var result = from c in xDoc.Descendants("Style") select (string)c.Attribute("x:Key").Value; 네, 에러가 납니다. Attribute의 이름에는 콜론(:)을 추가할 수 없습니다. Attribute메서드의 파라미터는 XName이구요. XName을 생성할 때 콜론(:)이 들어간 문자열을 허용하지 않기 때문입니다. 정답 XN..

Silverlight/Lecture 2008.07.24