我一直在尝试使用 yamlserializer 库构建一个 YAML 节点。但是我在构建 LINQ 语句时遇到了困难。

我有一个“Category”对象列表,我们称之为“Cats”,Category 类有一个 Id 和一个 Name,需要通过以下方式表示为 Yaml 映射。
Cats[0].Id : Cats[0]Name
Cats[1].Id : Cats[1].Name
...

对于那些没有使用过图书馆的人。
YamlMapping 类有一个构造函数,它接受一个 YamlNode 对象数组。
YamlNode 是一个抽象类,包括 YamlMapping 在内的所有类型的节点都从它继承而来。

new YamlMapping
(
    "Categories", new YamlMapping (
    (from cat in blacklist.Categories.List select
    (YamlNode)cat.Id AND (YamlNode)cat.Name).ToArray());
)

以上显然不起作用,我想知道是否有任何方法可以达到预期的结果。
可以事先构造数组,但想知道是否有更多的 LINQish (?) 方法来实现相同的效果。

换句话说,数组构建必须是这样的。
YamlNode[] arr;
arr[0] = Cats[0].Id
arr[1] = Cats[0].Name;
arr[2] = Cats[1].Id;
arr[3] = Cats[1].Name;
......

最佳答案

就像是 :

(from cat in blacklist.Categories.List select
new YamlNode[] { (YamlNode)cat.Id, (YamlNode)cat.Name }).SelectMany(x => x).ToArray());

应该做的伎俩。

关于c# - 每个选择具有多个值的 LINQ 构建数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12911410/

10-12 12:36