【发布时间】: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< GlobalVars.nonemptypos; n++)内还有另一个 for 循环,foreach (var thing in XMLArrayList[n])? -
字符串名称 = XMLList.XMLArrayList[n].Select(x => x.xml_filename).FirstOrDefault();
-
@NateBarbettini 只是一个 xmldata 列表给以后编入索引带来了太多麻烦。有一个列表数组,我可以让每个位置都有每个文件的特定属性。
-
@Gusman 成功了。这是因为在每次迭代中我都会有一个不同的文件名(并且我将它作为参数传递给 XmlWriter.Create)。按预期工作。关于在里面有另一个循环就是这个想法 - 但我稍后会弄清楚如何迭代它。提前致谢。