私は LINQ を初めて使用し、それを使用して XML をクエリします (信じられないほどです)。XML で見つかった子孫List
ごとに新しいオブジェクトを作成する次の関数があります。list
public void ParseLists(XDocument xDoc)
{
XNamespace ns = xDoc.Root.Name.Namespace;
AddRange((
from e in xDoc.Descendants(ns + "list")
select new List
{
Id = (string)e.Element(ns + "id"),
ItemsLink = (string)e.Element(ns + "items-link"),
BatchLink = (string)e.Element(ns + "batch-link"),
Name = (string)e.Element(ns + "name"),
IsVendor = (string)e.Element(ns + "is-vendor"),
Levels = (string)e.Element(ns + "levels")
}).ToList());
}
XML がどのように見えるかのスニペットを次に示します。
<lists xmlns="www.namespaceurl.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<list>
<batch-link>www.batchlinkurl.com</batch-link>
<id>12345</id>
. . .
</list>
</lists>
質問:List
オブジェクトを作成するとき、要素の値を文字列として取得するのConvert.ToString()
ではなく、最初に使用しました。(string)
私が見つけたのは次のことでした:
Convert.ToString(e.Element(ns + "id"))
戻ります<id>12345</id>
一方
(string)e.Element(ns + "id")
戻り12345
ます。
戻り値が異なる理由を誰かが説明できますか?