2

グループ化する必要があるリストがあります。リストに次のオブジェクトを追加します。

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

そして、それがエラーが発生したときです。何か案は?これどうやってするの?ありがとう!

4

3 に答える 3

16

この種のエラーは通常System.Linq、使用リストに含まれていないことを意味します。コードファイルの先頭にこれを投げてみてください:

using System.Linq;

于 2012-10-26T19:58:36.213 に答える
4

System.Linq 名前空間への参照はありますか?

于 2012-10-26T19:58:44.940 に答える
4

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
于 2012-10-26T19:59:36.473 に答える