【问题标题】:Obtain element from array of list从列表数组中获取元素
【发布时间】:2016-02-25 21:21:44
【问题描述】:

在我的代码中,我有一个列表数组:

   public class xmldatalist
    {
        public List<xmldata>[] XMLArrayList = new List<xmldata>[9999];
    }

列表中的每个位置,都包含一个 xmldata 对象(此类):

   public class xmldata //Class to receive items list
    {
        public string xml_filename { get; set; }
        public string colorname { get; set; }
        public string colorvalues { get; set; }

    }

在另一种方法中,我有一个循环遍历这个列表数组中的非空位置:

for(int n=0; n< GlobalVars.nonemptypos; n++)
            {
}

在这个循环中,我想检索当前正在处理的 xml_filename。 即:列表的位置 0 有一个名为 bla1.bla 的 xml_filename - 我想检索这个名称。

我尝试了一种 LINQ 方法:

string name = XMLList.XMLArrayList[n].Select(x => x.xml_filename);

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<string>' to 'string' 

我想要实现的是在 n(indexer) 位置获取当前 xml_filename。

我做了一些研究,但到处都在谈论 ArrayList() ,而不是列表数组。 任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 我不清楚为什么你有一个 array 列表。为什么不简单地列出xmldata
  • “在这个循环中,我想检索当前正在处理的 xml_filename”——所以有 另一个 for 循环遍历列表吗?如,您向我们展示了遍历数组的 for 循环,在 for(int n=0; n&lt; GlobalVars.nonemptypos; n++) 内还有另一个 for 循环,foreach (var thing in XMLArrayList[n])?
  • 字符串名称 = XMLList.XMLArrayList[n].Select(x => x.xml_filename).FirstOrDefault();
  • @NateBarbettini 只是一个 xmldata 列表给以后编入索引带来了太多麻烦。有一个列表数组,我可以让每个位置都有每个文件的特定属性。
  • @Gusman 成功了。这是因为在每次迭代中我都会有一个不同的文件名(并且我将它作为参数传递给 XmlWriter.Create)。按预期工作。关于在里面有另一个循环就是这个想法 - 但我稍后会弄清楚如何迭代它。提前致谢。

标签: c# arrays linq list


【解决方案1】:

结果

XMLList.XMLArrayList[n].Select(x => x.xml_filename)

是字符串的 IEnumerable,如果你想获取它们的第一个字符串:

XMLList.XMLArrayList[n].Select(x => x.xml_filename).First()

【讨论】:

  • 古斯曼在评论中成功了。诀窍是: string name = XMLList.XMLArrayList[n].Select(x => x.xml_filename).FirstOrDefault() - 这将返回在每次循环迭代中处理的文件名。感谢您的关注
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 2012-04-04
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
相关资源
最近更新 更多