1

我正在尝试使用 Linq 创建 XML 文档,并且需要在每个对象的列表中引用索引。目前我能找到的只是IndexOf(s)方法,它只返回第一次出现的 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)))
                )));
4

2 回答 2

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))
                )));
于 2013-05-21T12:02:39.283 回答
0

对于 LINQ,请查看 SELECTMANY - 抱歉,无法提供更多详细信息,但希望是正确方向的指针。

于 2013-05-21T12:02:06.633 回答