我有以下代码时出现此错误:
string[] colors = { "green", "brown", "blue", "red" };
var list = new List(colors);
IEnumerable query = list.Where(c => c.length == 3);
list.Remove("red");
Console.WriteLine(query.Count());
Run Code Online (Sandbox Code Playgroud)
而且,Count()似乎不再被允许了.它被弃用了吗?
Sel*_*enç 16
您正在尝试创建一个List<string>,您应该告诉编译器
var list = new List<string>(colors);
Run Code Online (Sandbox Code Playgroud)
没有List,有一个名为泛型的类List<T>,需要一个类型参数.如果不指定类型参数,则无法创建通用列表.
你也试图调用Count扩展方法.该方法IEnumerable<T>作为第一个参数,而不是IEnumerable,这里是定义:
public static int Count<TSource>(this IEnumerable<TSource> source)
Run Code Online (Sandbox Code Playgroud)
所以你应该使用IEnumerable<string>访问该扩展方法:
IEnumerable<string> query = list.Where(c => c.Length == 3);
list.Remove("red");
Console.WriteLine(query.Count());
Run Code Online (Sandbox Code Playgroud)