我的代码给出了一个错误。这是错误:
Error CS1061 'IEnumerator' does not contain a definition for 'ToList' and no accessible extension method 'ToList' accepting a first argument of type 'IEnumerator' could be found (are you missing a using directive or an assembly reference?)
但是,我引用的是System.Linq ..:
namespace <hidden>.Configuration
{
using System;
using System.Configuration;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using <hidden>.Configuration;
[TestClass]
public class ConfTest2
{
[TestMethod]
public void TestCorrectConfig()
{
var applicationConfiguration = this.loadCorrectConfig;
var configuration = applicationConfiguration.Configuration;
var list = configuration.GetEnumerator().ToList();
}
}
另外,Resharper告诉我System.Linq是文件中未使用的指令
编辑:我删除了.GetEnumerator()
通话。调用configuration.ToList()
仍然会给我同样的错误(尽管类型为CustomConfiguration
而不是IEnumerable
,CustomConfiguration
类型是System.Configuration.ConfigurationElementCollection
的实现)。>
以下代码有效(但对我而言,这是一个相当丑陋的解决方法,它正在检查列表是否包含某些元素):
var applicationConfiguration = this.loadCorrectConfig;
var configuration = applicationConfiguration.Configuration;
foreach (var property in filter) { ... }
但是以下代码不起作用
var applicationConfiguration = this.
var configuration = applicationConfiguration.Configuration;
var list = configuration.ToList();
答案 0 :(得分:2)
var list = configuration.GetEnumerator().ToList();
应该。
var list = configuration.ToList();
GetEnumerator()
返回遍历序列的迭代对象,包括内部的foreach
和ToList()
的实现。