我在WF4中使用List(Of String),因为我想执行set操作(比如get distinct等)并且有一个qs。关于使用AddToCollection活动。是否可以使用一个语句添加多个项目? 例如我想在一个活动中添加“alpha”,“bravo”,“charlie”而不是三个
Collection - String对我来说效果不好,因为我无法在客户端的C#调用中获取它。如果你有解决方案,我也可以使用它。
提前致谢。
答案 0 :(得分:2)
如果您不想创建代码活动,那么有一个快捷方式(我正在使用它)
使用“分配活动”按如下方式分配变量
names = names.Union(New String()
{"alpha","bravo","charlie"}).ToList()
答案 1 :(得分:1)
不,内置的AddToCollection活动仅支持一次添加一个。这很可能是因为它使用的IList interface不提供批量添加项目的方法,而不像具有AddRange的List。您应该能够非常轻松地编写AddManyToList活动。这里有一些示例代码可以帮助您:
public sealed class AddManyToList<T> : CodeActivity
{
[RequiredArgument]
public InArgument<List<T>> List
{
get;
set;
}
[RequiredArgument]
public InArgument<IEnumerable<T>> Items
{
get;
set;
}
public override void Execute(CodeActivityContext context)
{
this.List.Get(context).AddRange(this.Items.Get(context))
}
}