私はフィールド名ユーザー名を選択しようとすると、別のプロパティで同じレベルから、私はLINQクエリ同じレベルのxmlタグから属性をlinqで選択するにはどうすればよいですか?以下のXMLで
に間違ってやっているかわからないんだけど、「バリュー」を取得しています
<?xml version="1.0"?>
<Objects>
<Object>
<Property Name="Value" Type="System.String">DeathStar</Property>
<Property Name="FieldName" Type="System.String">Server</Property>
</Object>
<Object>
<Property Name="Value" Type="System.String">Luke</Property>
<Property Name="FieldName" Type="System.String">Username</Property>
</Object>
</Objects>
var usernameValue =
from v in
from e in xd.Descendants().Elements()
let p = e.Parent
where
e.HasAttributes
&& e.Name.LocalName.Equals("Property")
&& e.Attribute("Name").Value.Equals("FieldName")
&& e.Value.Equals("UserName")
select p
where
v.HasAttributes
&& v.Name.LocalName.Equals("Property")
&& v.Attribute("Name").Value.Equals("Value")
select v.Value;
おかげで私はこのReSharperのがFirstOrDefaultへの単一の呼び出しに置き換え文句を言ったと一緒に行くことになったので、私はWhere句を削除し、.FirstOrDefaultにどこラムダを移動しました。なぜresharperが不平を言うのか分からないので、もっときれいに見えると思う。 – coredumpman
問題はありませんが、私はそれが最高の解決策を見つけるのを助けてくれたことを嬉しく思っています。見つけた解決策を書いて、この質問に答えてマークを付けることをお勧めします。それは他の人に役立つかもしれません。 –