我有一个我需要分组的列表。在列表中我添加了这个对象:
private class MyObject {
private System.Drawing.Color color;
private string title;
public MyObject(System.Drawing.Color color, string title)
{
this.color = color;
this.title = title;
}
public string Title
{
get { return title; }
set { title = value; }
}
public System.Drawing.Color Color
{
get { return color; }
set { color = value; }
}
}
我将我的列表创建为:
System.Collections.Generic.List<MyObject> mList = new System.Collections.Generic.List<MyObject >();
然后我尝试对内容进行分组:
var groupedList = mList.GroupBy(c => new {c.Title} ).ToList();
那是我收到错误的时候。有任何想法吗?我怎样才能做到这一点? 谢谢!
答案 0 :(得分:11)
这类错误通常意味着您未在使用列表中添加System.Linq
。尝试将其放在代码文件的顶部:
using System.Linq;
答案 1 :(得分:3)
您是否有对System.Linq命名空间的引用?
答案 2 :(得分:3)
您需要将using System.Linq
添加到文件名的顶部或内部。
GroupBy
实际上不是List
类的方法,它是System.Linq
中定义的扩展方法。当您向该命名空间添加using
语句时,它允许该命名空间中的所有扩展方法解析为using
所在文件扩展的任何类型。
一些不相关的说明:
using System.Collections.Generic
以及其他几个常用命名空间,可能还有其他大多数命名空间。打字System.Collections.Generic.List<MyObject> mList = new System.Collections.Generic.List<MyObject >();
只会让我感到畏缩。添加using
后,您只需:List<MyObject> mList = new List<MyObjecT>();
。mList.GroupBy(c => c.Title )
进行分组,请执行:Title
。