は、これは私のXMLファイルです:てToArray()せずに、単一の項目にLINQのマッチングを行うためにどのように
<items>
<item>Apples</item>
<item>Lemon</item>
<item>Grapefruit</item>
</items>
そして私は最後の項目に一致する、このXMLリスト内<item>
のいずれかどうかを確認しようとしています以下の私のリストに:現時点で
var titleList = new List<string> { "Pear", "Lime", "Lemon" };
私はこのようにそれを行う:
var itemMatch = Settings.xdoc.Root
.Descendants("Items")
.Where(test => titleList.Last().Contains((string)test.Element("Item")))
.ToArray();
foreach (var item in itemMatch)
{
Debug.WriteLine(item.Element("item"));
}
しかしforeachループは思わ1つの試合(この場合はレモン)だけが存在するため、無意味です。どのようにループなしでこれを行うことができますが、まだどの項目が一致しているか知っていますか?ノーならば
var itemMatch = Settings.xdoc.Root
.Descendants("Items")
.FirstOrDefault(test => titleList.Last().Contains((string)test.Element("Item")));
これはあなたの述語またはデフォルト値(null
)に一致する最初の要素を与える:
私は質問で混乱しています。なぜあなたはToArrayを最初に呼びますか?あなたが 'ToArray'への不必要な呼び出しを望まないなら、なぜ単にそれを削除していないのですか?また、質問のタイトルやあなたが求めている質問がまったく違うようです。ここで実際に何を求めているのですか? –