是的,您可以将 Linq 查询与 Workflow 一起使用。在 WF 中,您所指的规则是在运行时计算的表达式。您的查询正在根据条件选择有序性的子集。
例如,如果我有一组名称,并且我只想查看以“R”开头的名称。我可以编写以下代码。
private static void ShowQueryWithCode(IEnumerable<string> names)
{
Console.WriteLine("LINQ Query in Code - show names that start with 'R'");
// Assuming there are no null entries in the names collection
var query = from name in names where name.StartsWith("R") select name;
// This is the same thing as
// var query = names.Where(name => name.StartsWith("R"));
foreach (var name in query)
{
Console.WriteLine(name);
}
Console.WriteLine();
}
对工作流做同样的事情
步骤 1:使用 IEnumerable 类型的 In 参数创建工作流
在这里你可以看到我添加了 in 参数
步骤 2:为 IEnumerable 类型的查询添加一个变量
在添加变量之前,您需要包含一个具有变量的活动。在这个工作流程中,我添加了一个序列。
第 3 步:为查询分配要使用的 LINQ 表达式
您可以使用方法链或查询语法。
第 4 步:遍历集合
在完成的工作流程中,我使用了 ForEach 活动来迭代名称列表并将它们写入控制台。
此示例在 .NET 4.5 中使用 C#,但同样的技术也可用于 Visual Basic。
您可以在此处下载示例代码