c# – 如何将var转换为string []

我在C#中写了一个LINQ
string etXML = File.ReadAllText("ET_Volume.xml");
string[] allLinesInAFile = etXML.Split('\n');

var possibleElements = from line in allLinesInAFile
                       where !this.IsNode(line)
                       select new { Node = line.Trim() };  

string[] xmlLines = possibleElements.ToArray<string>();

问题出现在最后一行,出现以下错误

  • System.Collections.Generic.IEnumerable<AnonymousType#1> does
    not contain a deFinition for ToArray and the best extension method
    overload
    System.Linq.Enumerable.ToArray<TSource>(System.Collections.Generic.IEnumerable<TSource>)
    has some invalid arguments

  • Instance argument: cannot convert
    from System.Collections.Generic.IEnumerable<AnonymousType#1> to
    System.Collections.Generic.IEnumerable<string>

有什么问题以及将我的var转换为字符串[]的方法是什么?

解决方法

您在此处创建匿名类型:
new { Node = line.Trim() }

这不是必要的,只需返回

line.Trim()

你有一个IEnumerable字符串.然后你的ToArray将工作:

var possibleElements = from line in allLinesInAFile
                       where !this.IsNode(line)
                       select line.Trim();  

string[] xmlLines = possibleElements.ToArray();

另一种选择是:

possibleElements.Select(x => x.Node).ToArray();

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...