0
我這個XML轉換:使用轉換XML字典
<root>
<item id="1" level="1" />
<item id="2" level="1">
<item id="3" level="2" />
<item id="4" level="2" >
<item id="5" level="3">
<item id="6" level="4" />
</item>
</item>
<item id="7" level=2" />
</item>
</root>
成字典這樣的:
XElement root = XElement.Parse(strSerializedoutput);
Dictionary<int, Pair> list = root.Descendants("item").ToDictionary(x => (int)x.Attribute("id"), x =>
{
var pId = x.Parent.Attribute("id");
var depthLevel = x.Attribute("level");
if (pId == null)
{
return new { parentID = 0, level = (int)depthLevel };
}
else
{
return new { parentID = (int)pId, level = (int)depthLevel };
}
});
,其中對爲:
public class Pair
{
int parentID;
int level;
}
輸出我想:
ID | ParentID | level
------------------------
1 NULL 1
2 NULL 1
3 2 2
4 2 2
5 4 3
6 5 4
7 2 2
,但我得到一個錯誤說
錯誤35無法隱式轉換 型 'System.Collections.Generic.Dictionary INT,AnonymousType#1' 到「System.Collections.Generic.Dictionary INT,ProposalSystem.handlers。 main.Pair」
當我使用新的對,我得到以下errors.Error 無法轉換lambda表達式鍵入「System.Collections.Generic.IEqualityComparer」,因爲它不是一個委託類型,也 錯誤'ProposalSystem.handlers.main.Pair.parentID'由於其保護級別而無法訪問 –
@PrakashChennupati您的'Pair'應該有'public' memebers定義 –
啊謝謝!得到它了! –