我是 c# linq 的新手并且正在努力解决某些问题。我有一个列表,想从中收集特定信息,如下例所示:
假设我有以下kidsEat对象列表:
{NAME=joseph, FOOD=banana, EATEN=true}
{NAME=joseph, FOOD=apple, EATEN=false}
{NAME=billy, FOOD=banana, EATEN=false}
{NAME=billy, FOOD=apple, EATEN=false}
Run Code Online (Sandbox Code Playgroud)
从这个列表中,我想知道每个男孩是否吃过任何东西。
如果他确实吃了什么东西,它会带走说他吃过的东西。
如果他没有吃东西,它会在他没有吃东西的地方随机抽取一个。
因此,此示例应返回以下 2 个对象的列表:
{NAME=joseph, FOOD=banana, EATEN=true}
{NAME=billy, FOOD=banana, EATEN=false} //banana could be switched to apple, it doesn't matter
Run Code Online (Sandbox Code Playgroud)
所以。我想到了这样的事情:
KidsList.GroupBy(kid=>kid.NAME).Where().Select(kid=>kid.First())
Run Code Online (Sandbox Code Playgroud)
但我不知道在 where 子句中放什么,因为它就像遍历所有行,然后查找其中一个是否为真,如果是,则输入“真”,否则输入假。感觉它需要一些 if else 在 LINQ 查询中。
有什么帮助吗?