簡體   English   中英

LINQ按錯誤分組:“不包含'GroupBy'的定義”

[英]LINQ Group by error: “does not contain a definition for 'GroupBy'”

我有一個列表需要分組。 在列表中,我添加此對象:

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();

那就是我得到錯誤的時間。 有任何想法嗎? 我怎樣才能做到這一點? 謝謝!

這些類型的錯誤通常意味着您不在使用列表中包括System.Linq 嘗試將其扔到代碼文件的頂部:

using System.Linq;

您是否有對System.Linq命名空間的引用?

您需要using System.Linq將文件添加到名稱空間頂部或內部。

GroupBy實際上不是List類的方法,它是System.Linq定義的擴展方法。 當您將using語句添加到該命名空間時,它允許將該命名空間中的所有擴展方法解析為它們為using的文件擴展的任何類型。

一些不相​​關的注釋:

  1. 您可能還想在該文件的頂部以及其他大多數頂部添加一個using System.Collections.Generic以及其他幾個常見的命名空間。 輸入System.Collections.Generic.List<MyObject> mList = new System.Collections.Generic.List<MyObject >(); 只是讓我畏縮。 一旦添加using您將只需要: List<MyObject> mList = new List<MyObjecT>();
  2. 您可能不想為分組創建新的匿名類。 它將起作用,但是在不添加任何有用內容的情況下,使用結果會更加煩人。 只需做: mList.GroupBy(c => c.Title )如果只想對Title進行分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM