1
屬性說我有一個xml文件,看起來像這樣如何使用LINQ到設置基於計數器
<foo>
<bar id="9" />
<bar id="4" />
<bar id="3" />
</foo>
我想使用LINQ到ID的重置爲0,1,2。 最簡單的方法是什麼?
感謝
屬性說我有一個xml文件,看起來像這樣如何使用LINQ到設置基於計數器
<foo>
<bar id="9" />
<bar id="4" />
<bar id="3" />
</foo>
我想使用LINQ到ID的重置爲0,1,2。 最簡單的方法是什麼?
感謝
XElement xml = GetXml();
var i = 0;
foreach (var e in xml.Elements("bar"))
e.SetAttributeValue("id", i++);
您可以使用LINQ方法代替的foreach做到這一點,但沒有對降壓多邦:
XElement xml = GetXml();
int updatedElements = xml.Elements("bar")
.Select((x, i) =>
{
x.SetAttributeValue("id", i);
return x;
})
.Count();
這裏,伯爵()方法是必要的枚舉查詢。列舉查詢的任何東西都可以。
如果使用選擇的突變困擾你(因爲它沒有我),使用名單(T).ForEach代替:
XElement xml = GetXml();
xml.Elements("bar")
.Select((x, i) => new {x, i})
.ToList()
.ForEach(a => a.x.SetAttributeValue("id", a.i));
在大多數情況下,我們可以得到更多的簡單的代碼比查詢語句。但它似乎不是在這種情況下。 – 2008-11-24 14:00:37