【发布时间】:2015-12-25 03:57:38
【问题描述】:
类名因某些原因而重命名。但请假设这是类结构的样子。
public class Animal{
public List<Cat> getCatsandKitten();
{
...
}
}
public class Cat {
public Kitten kitten;
}
public class Kitten{
public string name;
public string nickname;
}
//assume this returns a list of cats and populates each Cat class with kitten values. Also ignore any syntax issues.
var animals = getCatsandKitten();
问题:
如何返回一个 LINQ 查询,该查询返回一个包含所有小猫的姓名或昵称的值列表或数组。 示例:给我一份名字或昵称中包含汤姆的所有小猫的列表
到目前为止,这是我的查询:
List<String> listOfKittens = animals
.SelectMany(i => i.Cat
.Where(m=>m.name.Contains("Tom") || m.nickname.Contains("Tom"))
.SelectMany(s => new[] { s.name, s.nickname })
);
这不起作用,因为我要返回两个列(名称和昵称),这意味着即使名称有一个匹配项,也会返回两个值。
提前致谢。
【问题讨论】:
-
注意
Kitten是Cat,否则将来会是一只猫……它们都有名字、昵称和其他类似的属性。对我来说,它看起来像单个实体,应该是一个树状结构:public Cat[] Kittens { get; set; }。恕我直言。 -
抱歉,我举了一个不好的例子。由于某些原因,我更改了类名,但假设这是现有的类结构。我将如何查询它?
标签: linq