gpt4 book ai didi

dictionary - .NET : ForEach() extension methods and Dictionary

转载 作者:行者123 更新时间:2023-12-02 06:12:10 30 4
gpt4 key购买 nike

我有一个简单的问题:我对 Dictionary.Value 集合进行了很多次迭代,这让我很烦,我必须调用 .ToList() 然后才能调用 .ForEach(),因为它似乎没有可枚举的Dictionary 中的集合(Dictionary 本身、Keys 集合或 Values 集合)具有 ForEach 扩展方法。

没有在这些集合上实现 ForEach() 扩展方法是否有任何充分的理由,或者这只是 MS 认为不重要的事情?

迭代字典集合有那么不寻常吗?在存储从数据库中提取的数据时,我经常使用字典而不是列表,使用记录标识值作为键。我不得不承认很多时候我什至不按 Id 键查找,但这只是我养成的习惯...

最佳答案

Eric Lippert explains why Microsoft didn't write a ForEach extension method .

你可以自己写一个:

public static void ForEach<T>(this IEnumerable<T> sequence, Action<T> action) {
if (sequence == null) throw new ArgumentNullException("sequence");
if (action == null) throw new ArgumentNullException("action");
foreach(T item in sequence)
action(item);
}

//Return false to stop the loop
public static void ForEach<T>(this IEnumerable<T> sequence, Func<T, bool> action) {
if (sequence == null) throw new ArgumentNullException("sequence");
if (action == null) throw new ArgumentNullException("action");

foreach(T item in sequence)
if (!action(item))
return;
}

关于dictionary - .NET : ForEach() extension methods and Dictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331931/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com