2012-03-01 9 views
0

私は必要な特定のレコードのXML文書を照会しようとしています。私は、以下の「またはどこか」の場合を含む行が間違っていることを知っていますが、私が達成しようとしていることを説明することを望んでいます。 2つの別々のプロパティで条件付きwhere節を実行できますか?LINQにOR句がありますか?

XDocument xd = XDocument.Load("CardData.xml"); 
SearchList.ItemsSource = from x in xd.Descendants("card") 
         where x.Element("title").Value.ToUpper().Contains(searchterm.ToUpper()) 
         or where x.Element("id").Value.Contains(searchterm) 
         select new Card 
         { 
          Title = x.Element("title").Value 
         }; 

答えて

2

はい - ブール値または||を使用します。

where x.Element("title").Value.ToUpper().Contains(searchterm.ToUpper()) || 
     x.Element("id").Value.Contains(searchterm) 

はまた、彼らは内のすべてのアイテムに対して実行されていないので、単なるマイナー最適化として、私は操作の一部を事前に計算するだろうあなたが現在お使いのWhere句を持っている点に注意してください。そして1つのWhere句にあなたの条件を組み合わせますリスト - おそらく問題ではありませんが、多くの要素がある場合(おそらく私の意見では良い習慣です):

関連する問題