期间执行的操作我有这样一个集合:枚举
IEnumerable<Query> queries;
我寻找包含在字典中的键的那些,我想要做一些匹配value.I知道这是可能的:
(from query in queries
where _metadata.ContainsKey(query.Value)
select query).ToList().ForEach(result=>_metadata[result.Value].AddQuery(result));
我想知道是否可以通过在匹配的查询枚举中调用AddQuery()来简化它。查询是不可变的,所以它不应该打破它。它应该是这样的。
from query in queries
where _metadata.ContainsKey(query.Value)
//do something like _metadata[query.Value].AddQuery(query)
的AddQuery()方法无关字典键。它只是将查询添加到查询集合(字典值)。它仍然是一个副作用? –
@Ufuk:如果调用'AddQuery'不会影响'ContainsKey',那很好。这仍然是一个副作用,但这就是你想要的*。重要的是它是一个不会干扰查询的副作用。 –