我有一个对象的List,其中包含一个字符串数组作为其属性之一。我想得到一个包含所有值的不同的字符串数组。

我的对象看起来像这样:

public class Zoo {
    string Name { get; set;}
    string[] Animals { get; set;}
}

有些动物园可能只有一种动物,有些动物园可能有很多。什么是最简单的Lambda表达式或LINQ查询,以List<Zoo>为我提供所有动物园中所有动物的唯一列表?

最佳答案

var query = zoos.SelectMany(zoo => zoo.Animals)
                .Distinct();

或者,如果您是查询表达式迷(我不会这么简单):
var query = (from zoo in zoos
             from animal in zoo.Animals
             select animal).Distinct();

关于c# - LINQ-从对象层次结构中选择所有子级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1229897/

10-16 23:05