2

我有一个班级持有 aColor和一个字符串:

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

我有他们的清单:

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

我对 LINQ 不太熟悉,我想知道如何将 in 中的所有Color对象List放入新ListColors中

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 回答
0

我使用了 .FindAll 方法。

var lst = GetAllProducts();

List<ProductModel> sel = lst.FindAll(x => x.IsActive == true);

return sel;

我有一种方法可以将所有产品放入 List<>。我的产品模型有一个名为 IsActive(布尔值)的属性。

此代码创建一个仅包含 Active=True 产品的新 List<>。

于 2018-03-16T18:13:39.163 回答