【发布时间】:2015-03-30 11:54:00
【问题描述】:
我在数据库中有大量水果。
其中一些水果尚未完成,即它们缺少有关它们的一些细节,例如颜色、质地、大小等。在这种情况下,缺少的属性是颜色。
使用 linq 的 Where() 方法我很确定我可以过滤掉所有这些
没有颜色的水果并将它们作为集合返回
水果。
问题是我不确定语法是如何工作的,出于某种原因我
得到的问题虽然fruits 和fruitfinder.fruits 都是
Fruit 集合存在隐式转换问题。
FruitCollection fruits = null;
//Initializing the fruits collection here
//What I want is to only retrive the fruits which have a color
fruits = fruitFinder.fruits.Where( f => f.color != null );
这只是一个示例,但此处提供的答案使问题保持一般性,并且可以回答我的具体问题。
【问题讨论】:
-
Where返回IEnumerable<Fruit>而不是FruitCollection。您需要FruitCollection吗?如果是这样,请提供一个采用IEnumerable<Fruit>的构造函数。然后在此处使用foreach填写您的收藏。 -
@Tim 感谢您的输入,我通过转换为列表并将列表作为参数传递了类似的方式。
-
也许是主观的,但我更喜欢采用
IEnumerable<Fruit>的构造函数,因为它允许任何种类的水果作为输入(例如Fruit[])。然后你可以在那里使用fruits.ToList()。