如何引用List对象's的位置索引,而不搜索第一次出现

本文关键字:索引 位置 第一次 搜索 引用 何引用 List 对象 string | 更新日期: 2023-09-27 18:14:43

我试图使用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)))
                )));

如何引用List<string>对象's的位置索引,而不搜索第一次出现

试试这个

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))
                )));

LINQ看SELECTMANY -抱歉不能提供更多的帮助,但希望在正确的方向上的指针。