2

Colorと文字列を保持するクラスがあります。

 public class Magic{
   public string Name {get; set;}
   public Color MyColor {get; set;}
 }

私はそれらのリストを持っています:

List<Magic> MyList = new List<Magic>();

私はLINQの経験があまりないので、すべてのColorオブジェクトをsだけのList新しいものにする方法を知りたいですListColor

4

3 に答える 3

6

Selectメソッドを使用します。

List<Color> magicColors = MyList
    .Select(magic => magic.MyColor)
    .ToList();

ユニークな色だけが必要な場合:

List<Color> magicColors = MyList
    .Select(magic => magic.MyColor)
    .Distinct()
    .ToList();

アイデアは、すべての に対してMagic、その を引き出すということMyColorです。それが のすることSelect(magic => magic.MyColor)です。

于 2013-03-27T20:39:20.083 に答える
1

質問は少しあいまいです。色の投影を探している場合は、@ChrisSinclair の答えが正しいです。

一方、色でフィルタリングする場合は、次のようにできます。

var magicS = (from magic in MyList where magic.MyColor == s select magic).ToList();

また

var magicS = MyList.Where(m => m.MyColor == s).ToList();
于 2013-03-27T20:41:40.223 に答える