这个问题的目的是找到一种获取ObservableCollection
(strings
具体来说)特定内容并将其写入文本文件的方法。
通过使用节点来构造此集合,因为它用于实现TreeView
。话虽如此,我目前正在尝试获取父节点的子值,如下所示:
//I am currently getting an InvalidOperationException -- Sequence contains no matching element
var Node = Collection.GetAllChildren(x => x.Children).Distinct().ToList().First(x => x.DisplayName == Name);
为了写文件,我用这个File.
方法:File.WriteAllLines()
。据我了解,此方法采用FileName,然后采用IEnumerable
(aList
等)。是否ObservableCollection
包含IEnumberable
兼容的方法,还是需要将内容添加到中List
?
现在,我正在尝试将此操作写入文件行:
File.WriteAllLines(FileName, new ObservableCollection<string> { ViewModel.Data.ToList() });
如何更正代码中的这两个有害部分?获取所需信息并将其添加到文件中的正确方法是什么?
更新:这些是我在上述^代码行中收到的当前错误。如果我正确实现了这一点(根据答案,我是的),为什么会收到这些编译错误?(注意:type
已切换为string
)
更新2:我已经更新了要写入文件的参数。Data
是一个ObservableCollection<ViewModel>
。
是的,File.WriteAllLines
需要大量的工作IEnumerable<string>
。ObservableCollection<string>
实现IEnumerable<string>
,因此一切正常。
只是Type
应该是string
:
File.WriteAllLines(FileName, new ObservableCollection<Type> ( NodeName.ToList() ));
ObservableCollection是否包含与IEnumberable兼容的方法
不,它实现IEnumerable。
PS正如另一个答案中所建议的那样,ObservableCollection
是多余的。您可以通过任何可以实现的东西IEnumerable<string>
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句