【发布时间】:2010-10-27 21:34:09
【问题描述】:
有没有其他方法可以直接从 ValueCollection 获取List<foo>。
当前我正在使用以下代码
Dictionary<string,List<foo>> dic;
List<foo> list= new List<foo>();
foreach (List<foo> var in dic.Values)
{
list.AddRange(var);
}
或
List<List<foo>> list= new List<List<foo>>(dic.Values);
上面的转换给了我List<List<foo>,但我希望 dic.values 中的List<foo> 不使用 for 每个循环,如果可能的话,使用 .NET 2.0。
【问题讨论】:
-
为什么不想使用 foreach 循环?
-
如果没有 Linq (.NET 3.5),您将需要一个
for或foreach循环。 -
根据您的要求,您可以链接到 .NET 3.0/3.5,但仍可在旧版本的 Visual Studio 上进行编译。该语法看起来不那么性感,因为您必须通过静态语法访问扩展方法,但它至少是一种替代方法。
-
@Greg,通过为它实现自己的类,可以不用 for 或 foreach 循环。
-
@tster - 然后循环在自定义类或自定义方法中。正如我所说,您仍然需要在 somewhere 编写一个循环 - 除非您使用递归或其他一些杂技来避免它。只需在原地或在实用程序/扩展方法中使用
foreach循环即可完成。
标签: c# list dictionary