我正在尝试使用Linq创建XML文档,并且需要在每个对象的列表中引用索引。目前我所能找到的只是 IndexOf(s)方法,它只返回第一次出现的s,而不是任何给定的位置。当List包含相同值的多个副本时,这会产生问题。
var commands = listProcedure.Items.Cast<string>().ToList();
var xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("commands",
commands.Select(s => new XElement("command", s, new XAttribute("id", commands.IndexOf(s)))
)));
答案 0 :(得分:2)
试试这个
var commands = listProcedure.Items.Cast<string>().ToList();
var xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("commands",
commands.Select( (s, idx) =>
new XElement("command", s, new XAttribute("id", idx))
)));
答案 1 :(得分:0)
对于LINQ,看一下SELECTMANY - 抱歉对细节不能提供更多帮助,但希望指向正确的方向。