期間執行的操作我有這樣一個集合:枚舉
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',那很好。這仍然是一個副作用,但這就是你想要的*。重要的是它是一個不會干擾查詢的副作用。 –