我有一个包含另一个列表的元素列表。
public class SiloNode
{
public string Key { get; private set; }
public string Url { get; private set; }
public List<NodeQuery> Queries { get; private set; }
}
public class NodeQuery
{
public string Query { get; private set; }
public int Seq { get; private set; }
}
我需要产生一个包含所有查询的新列表以及相应的父URL。
一个例子是:
输出应为LinkMeta类的形式。
public class LinkMeta
{
public LinkMeta(string url, string text)
{
Url = url;
Text = text;
}
public string Text { get; private set; }
public string Url { get; private set; }
}
完整列表包含在:root.Children。
下面的查询为我提供了所有Query元素,但我无法返回到网址。
var filtered = root.Children.SelectMany(x => x.Queries.Select(y => y.Query));
答案 0 :(得分:1)
您可以使用下面的linq来实现它。
if ($pullRequests.PSObject.Properties)
{
"Object has properties so process it."
}
else
{
"Object has no properties, ignore it."
}
它将返回LinkMeta的列表。希望对您有所帮助。
答案 1 :(得分:0)
Lambda表达式的作用域与嵌套块的作用域相同。这意味着嵌套的lambda表达式仍然可以访问变量“ x”。因此,您应该能够执行以下操作:
var filtered = root.SelectMany(x => x.Children.Queries.Select(y => new LinkMeta(x.Url, y.Query));